less komutunun çeşitli özellikleri ve kısayol kombinasyonları sayesinde dosya gezintisi, arama, filtreleme, yer imi kullanımı ve seçenek değiştirme işlemleri verimli şekilde yapılabilir
- Birden fazla dosya aynı anda açılabilir ve
:n, :p, :e, :d komutlarıyla dosyalar arasında gezinme, ekleme ve silme mümkündür
- Arama (
/, ?, n, N) ve filtreleme (&, &!) özellikleri kullanılarak belirli desenler hızlıca bulunabilir veya hariç tutulabilir
- Yer imleri (
m, ') ve parantez eşleştirme özelliği ile uzun belgelerde veya kod dosyalarında konumlar arasında geçiş kolaylaşır
- Çalışma sırasında seçenek değiştirme (
-S, -R, -N vb.) ve harici komut çalıştırma (!) sayesinde less kapatılmadan ortam anında ayarlanabilir
Birden fazla dosyayla çalışma
less, yalnızca bir pipeline'ın sonunda kullanılan bir araç değildir; birden fazla dosya doğrudan argüman olarak açılabilir
- Örnek:
less file1 file2 file3
- Çalışma sırasında da
:e file.h komutuyla yeni dosya eklenebilir
:n ile sonraki dosyaya, :p ile önceki dosyaya, :x veya :rewind ile ilk dosyaya dönülebilir
:d komutuyla mevcut dosya listeden kaldırılabilir
Gezinme özellikleri
3141G gibi sayı+G girilerek belirli bir satır numarasına gidilebilir
75% gibi sayı+% ile dosyanın yüzdesel konumuna atlanabilir
/desen ile ileri yönde arama, ?desen ile geri yönde arama, n/N ile sonraki/önceki sonuca geçiş yapılabilir
!desen eşleşmeyen satırları bulur, * birden fazla dosyada arama yapar, @ aramayı ilk dosyadan başlatır, @* ise tüm dosyaların tamamında arama yapar
Filtreleme özellikleri
&desen ile yalnızca bu desenle eşleşen satırlar gösterilir; dahili bir grep gibi çalışır
&!desen ile desenle eşleşmeyen satırlar gösterilir; log dosyalarını incelerken kullanışlıdır
Yer imleri ve parantez eşleştirme
m + karakter ile yer imi ayarlanır, ' + karakter ile o konuma gidilir
- Örnek: OPTIONS bölümü için
mo, EXAMPLES bölümü için me yer imi koyup ardından 'o, 'e ile geçiş yapılabilir
(, [, { gibi bir parantez ekranın ilk satırındaysa, ilgili parantez girildiğinde eşleşen paranteze atlanır
- Tersine, kapanan parantez son satırdaysa açılan paranteze gidilir
alt+ctrl+b gibi kombinasyonlarla kullanıcı tanımlı parantez çiftleri belirtilebilir
Seçenek değiştirme ve harici komut çalıştırma
- Çalışma sırasında
- sonrasına seçenek girerek ayarlar anında değiştirilebilir
-S: satır kaydırmayı aç/kapat
-G: arama vurgulaması
-i/-I: büyük/küçük harf duyarlılığı ayarı
-R: ANSI renklerini göster
-N/-n: satır numaralarını göster/gizle
! komutuyla harici komut çalıştırılabilir (!date, !bc vb.)
Ortam değişkenleri ve diğer özellikler
- Sık kullanılan seçenekler
$LESS ortam değişkeninde saklanabilir
- Örnek:
LESS="-RNe" → renkleri göster, satır numaralarını göster, dosya sonunda otomatik çık
v komutuyla geçerli dosya $VISUAL editöründe açılabilir
o veya O komutuyla standart girdiden okunan içerik dosyaya kaydedilebilir
less, ctags tabanlı etiket atlama özelliğini destekler, ancak kullanım sıklığı düşüktür
1 yorum
Hacker News yorumları
followözelliğinin atlanmış olması şaşırtıcıydı. İlk başta biraz garip bir UX gibi hissettiriyor ama alışınca birçok durumdatail'den daha iyi oluyorless +File çalıştırdığınızda giriş akışını veya dosyayı gerçek zamanlı olarak takip ederek gösterir.<C-c>ile takibi durdurup normallessgibi gezinebilir, ardındanF(büyük harf) tuşuna basarak takibi yeniden başlatabilirsinizkubectl logs | less +F) takip ederken<C-c>tuşuna basarsanız tüm pipe süreci sonlanır ve bu yüzden tekrarFile takibi sürdüremezsiniz.lessiçinde takibi<C-x>ile durdurmaya yönelik bir alternatif var ama çoğu shell bu tuşu yakalıyortailiçinde Enter'a basarak son satırın altına boş satır ekleyebilirsiniz. Birden fazla çalıştırma sonucunu ayırarak görmek güzel olduğu için hâlâ bu tek özellik yüzündentailkullanıyorum-Xveya--no-initseçeneği çıkışta ekranı temizlememeyi sağlar. Ben genelde ekranı korumayı tercih ediyorum; böylece önceki içeriğe bakabiliyor veya kopyala-yapıştır yapabiliyorum-Xdavranışını sadece ara sıra kullanmak istiyorsanız bu başlıktaki ipucuna bakabilirsiniz-Eile birlikte kullanıldığında, çıktı terminal boyutundan küçükse hemen çıkar. Birçok seçeneği birleştirip sık sık “less -SEXIER” kullanıyorum. Akılda kalması da kolayUzun loglarda hata ayıklarken, sadece okumak istediğim kısımları
&ile filtreliyor, gereksiz kısımları da&!ile hariç tutuyorum. Regex de destekliyor. Bazen yavaş olabiliyor ama anlık filtreleme için faydalıİki faydalı ipucu var
-Lseçeneği giriş dosyası ön işlemeyi atlar; böylece log dosyası adlarılogfile.1,logfile.2gibi döndürüldüğünde bunların yanlışlıklanroffolarak işlenmesini engellerAyrıca arama yaparken ilk karakter olarak
Ctrl-Rgirerseniz, regex değil düz metin olarak arama yapabilirsiniz~/.lesskeydosyasıyla tuş atamaları ayarlanabiliyor. Benstuşunu geri kaydırmaya atadım; böylecedvesile tek elle hızlıca sayfa aşağı/yukarı yapabiliyorummacOS'in varsayılan
lesssürümünde bu özellik yok, bu yüzden Homebrew ile kurmak gerekiyor (örnek yapılandırma, ilgili açıklama)Ntuşunu next-file için atıyorum. macOS'ta lesskey olmaması gerçekten can sıkıcıOpenBSD'nin
manaracı etiketleriless'e aktarabiliyor; böylece:t testgibi belirli bir bölüme doğrudan gidilebiliyor. İlginç bir özellik ama pratikte neredeyse hiç kullanmıyorum.Sadece
/ile arama yapmak gibi tutarlı arayüz daha sezgisel geliyor.Bu arada BSD ailesi anlam tabanlı belgeler oluşturmak için
mdocmakro setini kullanıyor ve OpenBSD bunları işlemek içinmandocprogramını kullanıyor (mdoc belgesi)^qileless'ten çıkarken ekranı temizlememeyi, normalqile ise eskisi gibi çıkışta ekranı temizlemeyi ayarlayabilirsinizless'i-Xolmadan çalıştırmanız gerekir; özelliklegit loggibi önceki çıktıya bakmanız gereken durumlarda çok kullanışlıdırlessiçinde harici komuta pipe etme özelliği de var.Örneğin
maile bir işaret koyup|aile mevcut konumdan o işarete kadar olan içeriği harici bir komuta gönderebilirsiniz.Haber veya e-postanın bir kısmını kaydetmek için kullanışlıdır.
Ayrıca
-jseçeneğiyle arama sonuçlarının ekranın üstünden kaç satır aşağıda gösterileceğini ayarlayabilirsinizgit logile kullanıyorum. Commit'i seçtikten sonra kısayollagit showçalıştırıyor veya doğrudan fixup işlemi yapıyorum.bashdebug trap'i vekeyd-application-mapperkullanarak o anda çalışan komutu algılıyor, ilgili commit hash'ini çıkarıp bir script ile işliyorumless(1)içindeki regex motoru çok yavaş. Büyük dosyalarla uğraşırkengrepveyaripgrepile arama yapıp sonuçları görüntülemek içinless'e aktarıyorumstuşuyla pipe verisini bir dosyaya kaydedebilirsiniz. Kopyala-yapıştırdan çok daha rahatlessiçinde izliyorum ve sonuç faydalıysa ancak o zamansile kaydediyorum.teede kullanılabilir ama o her zaman dosya bıraktığı için gereksiz durumlarda verimsiz oluyor