1 poin oleh GN⁺ 2026-01-04 | 1 komentar | Bagikan ke WhatsApp
  • Dengan berbagai fitur dan kombinasi pintasan pada perintah less, penelusuran file, pencarian, pemfilteran, bookmark, dan pergantian opsi bisa dilakukan secara efisien
  • Beberapa file dapat dibuka sekaligus, dan berpindah/menambah/menghapus file dengan perintah :n, :p, :e, :d
  • Dengan memanfaatkan fitur pencarian (/, ?, n, N) dan pemfilteran (&, &!), pola tertentu dapat ditemukan atau dikecualikan dengan cepat
  • Bookmark (m, ') dan fitur pencocokan tanda kurung mempermudah perpindahan posisi di dokumen panjang atau file kode
  • Toggle opsi saat berjalan (-S, -R, -N, dll.) dan eksekusi perintah eksternal (!) memungkinkan penyesuaian lingkungan secara langsung tanpa keluar dari less

Menangani banyak file

  • less bukan hanya alat yang dipakai di akhir pipeline, tetapi juga bisa membuka beberapa file langsung sebagai argumen
    • Contoh: less file1 file2 file3
  • Saat berjalan pun, file baru bisa ditambahkan dengan perintah :e file.h
  • Dengan :n bisa pindah ke file berikutnya, dengan :p ke file sebelumnya, dan dengan :x atau :rewind bisa kembali ke file pertama
  • Dengan perintah :d, file saat ini dapat dihapus dari daftar

Fitur navigasi

  • Masukkan angka+G seperti 3141G untuk berpindah ke nomor baris tertentu
  • Dengan angka+% seperti 75%, bisa melompat ke posisi persentase tertentu dalam file
  • Gunakan /pola untuk pencarian maju, ?pola untuk pencarian mundur, dan n/N untuk berpindah ke hasil berikutnya/sebelumnya
    • !pola digunakan untuk mencari baris yang tidak cocok, * untuk pencarian lintas banyak file, @ untuk memulai pencarian dari file pertama, dan @* untuk mencari di seluruh file

Fitur pemfilteran

  • Dengan &pola, hanya baris yang cocok dengan pola tersebut yang ditampilkan, bekerja mirip grep internal
  • Dengan &!pola, hanya baris yang tidak cocok dengan pola yang ditampilkan, berguna saat menelusuri file log

Bookmark dan pencocokan tanda kurung

  • Gunakan m + karakter untuk menetapkan bookmark, dan ' + karakter untuk berpindah ke lokasi tersebut
    • Contoh: tandai bagian OPTIONS dengan mo dan bagian EXAMPLES dengan me, lalu pindah dengan 'o, 'e
  • Jika tanda kurung seperti (, [, { berada di baris pertama layar, memasukkan tanda kurung tersebut akan melompat ke pasangannya
    • Sebaliknya, jika tanda kurung penutup berada di baris terakhir, akan berpindah ke tanda kurung pembuka
  • Pasangan tanda kurung kustom juga bisa ditentukan dengan alt+ctrl+b dan sejenisnya

Toggle opsi dan menjalankan perintah eksternal

  • Saat berjalan, memasukkan opsi setelah - memungkinkan pengaturan diubah seketika
    • -S: toggle pembungkusan baris
    • -G: highlight pencarian
    • -i/-I: pengaturan peka/tidak peka huruf besar-kecil
    • -R: tampilkan warna ANSI
    • -N/-n: tampilkan/sembunyikan nomor baris
  • Dengan perintah !, perintah eksternal dapat dijalankan (!date, !bc, dll.)

Variabel lingkungan dan fitur lainnya

  • Opsi yang sering dipakai bisa disimpan di variabel lingkungan $LESS
    • Contoh: LESS="-RNe" → tampilkan warna, tampilkan nomor baris, keluar otomatis di akhir file
  • Dengan perintah v, file saat ini dapat dibuka di editor $VISUAL
  • Dengan perintah o atau O, isi yang dibaca dari input standar bisa disimpan ke file
  • less mendukung fitur lompatan tag berbasis ctags, meski jarang digunakan

1 komentar

 
GN⁺ 2026-01-04
Komentar Hacker News
  • Agak mengejutkan fitur follow tidak disebut. Awalnya terasa seperti UX yang aneh, tetapi setelah terbiasa, dalam banyak kasus ini lebih baik daripada tail
    Jika dijalankan dengan less +F, ia akan mengikuti stream input atau file secara real-time sambil menampilkannya. Dengan <C-c> Anda bisa menghentikan mode follow dan menelusuri seperti less biasa, lalu tekan F (huruf besar) untuk melanjutkan follow

    • Saat mengikuti input pipe (kubectl logs | less +F), menekan <C-c> akan mengakhiri seluruh proses pipe sehingga follow tidak bisa dilanjutkan lagi dengan F. less punya alternatif untuk menghentikan follow dengan <C-x>, tetapi kebanyakan shell menangkap tombol ini
    • Di tail, Anda bisa menekan Enter untuk menambahkan baris kosong di bawah baris terakhir. Ini berguna untuk membedakan hasil dari beberapa kali eksekusi, jadi saya masih memakai tail karena fitur ini
    • Daripada menyebutnya “agak aneh”, saya rasa ini adalah UX yang buruk. Seharusnya tidak perlu memaksa pergantian mode; kalau ada data baru, mestinya otomatis diperbarui
    • Akan bagus jika ada mode yang memungkinkan output baru terus ditambahkan secara otomatis sambil tetap bisa menelusuri. Sepertinya cukup dengan toggle auto-scroll seperti di terminal
    • Dulu saya kira “follow” adalah fitur rumit yang menangani file descriptor secara khusus, tetapi ternyata sebenarnya hanya terus melakukan polling setelah EOF. Artinya, tidak ada perbedaan mendasar antara membuka file biasa dan mode follow, dan perangkat lunak bisa beralih dengan mudah
  • Opsi -X atau --no-init membuat layar tidak dibersihkan saat keluar. Saya biasanya lebih suka mempertahankan layar agar bisa merujuk isi sebelumnya atau copy-paste

    • Jika Anda hanya sesekali ingin memakai perilaku -X, lihat tip di thread ini
    • Jika dipakai bersama -E, program akan langsung keluar bila output lebih kecil daripada ukuran terminal. Saya sering memakai kombinasi opsi “less -SEXIER”. Mudah juga diingat
  • Saat men-debug log panjang, saya memfilter hanya bagian yang ingin dibaca dengan & dan mengecualikan bagian yang tidak perlu dengan &!. Regex juga didukung. Kadang lambat, tetapi berguna untuk filtering cepat di tempat

  • Ada dua tip yang berguna
    Opsi -L melewati prapemrosesan file input, sehingga mencegah file log dengan nama seperti logfile.1, logfile.2 yang diputar salah diperlakukan sebagai nroff
    Selain itu, saat mencari, memasukkan Ctrl-R sebagai karakter pertama memungkinkan pencarian sebagai string literal, bukan regex

  • Anda bisa mengatur key binding dengan file ~/.lesskey. Saya mengikat s untuk scroll mundur sehingga bisa page up/down cepat dengan satu tangan menggunakan d dan s
    less bawaan macOS tidak punya fitur ini, jadi harus dipasang lewat Homebrew (contoh konfigurasi, penjelasan terkait)

    • Saya juga mengikat N ke next-file. Tidak adanya lesskey di macOS memang sangat menyebalkan
  • man di OpenBSD meneruskan tag ke less sehingga Anda bisa langsung pindah ke bagian tertentu seperti :t test. Fitur ini menarik, tetapi dalam praktiknya hampir tidak pernah saya pakai.
    Antarmuka yang konsisten dengan sekadar mencari lewat / terasa lebih intuitif.
    Sebagai referensi, keluarga BSD menggunakan set makro mdoc untuk membuat dokumentasi berbasis semantik, dan OpenBSD memakai program mandoc untuk merendernya (dokumentasi mdoc)

  • Dengan ^q, Anda bisa keluar dari less tanpa membersihkan layar, sementara q biasa tetap keluar seperti semula sambil membersihkan layar

    echo '^q toggle-option -redraw-screen\nq' >> ~/.config/lesskey
    

    less harus dijalankan tanpa -X, dan ini sangat berguna khususnya saat perlu merujuk output sebelumnya seperti pada git log

  • Di less juga ada fitur untuk me-pipe ke perintah eksternal.
    Misalnya, tetapkan mark dengan ma, lalu gunakan |a untuk mengirim isi dari posisi saat ini sampai mark tersebut ke perintah eksternal.
    Ini berguna saat ingin menyimpan sebagian berita atau email.
    Selain itu, opsi -j memungkinkan Anda mengatur berapa baris di bawah bagian atas layar hasil pencarian akan ditampilkan

    • Saya juga memakai fitur pipe ini untuk git log. Setelah memilih commit, saya menjalankan git show lewat shortcut, atau langsung melakukan pekerjaan fixup.
      Dengan debug trap di bash dan keyd-application-mapper, saya mendeteksi perintah yang sedang berjalan, mengekstrak hash commit tersebut, lalu memprosesnya dengan skrip
  • Mesin regex di less(1) terlalu lambat. Saat menangani file besar, saya mencari dulu dengan grep atau ripgrep, lalu melihat hasilnya lewat less

  • Dengan tombol s, data dari pipe bisa disimpan ke file. Jauh lebih nyaman daripada copy-paste

    • Saya juga sering memakai fitur ini. Saya melihat output proses yang berjalan lama lewat less, lalu hanya menyimpannya dengan s kalau hasilnya memang berguna.
      Bisa saja memakai tee, tetapi itu selalu meninggalkan file sehingga tidak efisien jika sebenarnya tidak diperlukan