Bisakah saya memaksa `man` untuk melakukan pencocokan sensitif huruf kecil?


10

Saat saya mencari halaman manual, pencarian sensitif huruf, tetapi hanya berkaitan dengan huruf besar. Misalnya, xakan cocok xdan Xpadahal Xhanya cocok x. Ini adalah man-dbversi manusia, yang digunakan pada sistem turunan fedora secara default dan tersedia pada yang lain. man manmengatakan pager defaultnya adalah less -s. $LESStidak didefinisikan di lingkungan, saya $PAGERadil less, dan saya tidak punya alias kurang.

Ini bukan perilaku ketika saya memohon lesssendiri.

Apakah ada cara untuk memaksa huruf kecil xagar hanya cocok dengan huruf kecil xsaat digunakan man?


1
Standarnya adalah sensitivitas case yang ketat. Apa yang Anda uraikan terdengar seperti LESSvariabel lingkungan Anda -i.
manatwork

1
Versi lessapa yang Anda miliki? Apakah Anda memiliki alias untuk less? Apakah KURANG atau KURANG env vars ditetapkan? Secara default, lesspencarian xhanya untuk kecocokan x, bukanX
bsd

Bukankah kita sudah memiliki Q ini? Saya pikir Hauke ​​bertanya, saya akan mencarinya .... (slm kembali sebelum 5 menit. Berakhir pada komentar ...) Yang ini, bukan dup tetapi sepertinya seperti yang Anda minta, bukan? unix.stackexchange.com/questions/116395/…
slm

@slm, ini juga reaksi pertama saya, tetapi ketika pemilik pertanyaan berpartisipasi dalam pertanyaan itu, saya kira dia tahu tentang itu.
manatwork

@manatwork echo $LESS= tidak ada. Catatan bukan case insensitve - tetapi hanya menegakkan sensitivitas huruf besar WRT. @ rolldown alias | grep less= tidak ada. Hanya memperhatikan itu hanya berlaku melalui man(itu mandb, btw)., Namun. Saya yakin saya pernah membaca tentang ini sebelumnya di suatu tempat ...
goldilocks

Jawaban:


3

Manusia memanggil Less; satu-satunya kontrol pada level man adalah memilih opsi mana yang disebut Less with.

Sensitivitas penelusuran kurang dikontrol oleh dua opsi.

  • Jika -Iberlaku, maka pencarian bersifat case-sensitive: salah satu aatau Adapat digunakan untuk mencocokkan keduanya adan A.
  • Jika -iberlaku tetapi tidak -I, maka pencarian tidak peka huruf besar-kecil, tetapi hanya jika polanya tidak mengandung huruf besar.

Jika Anda membuat -Iopsi default untuk Less, maka semua pencarian akan menjadi case-sensitive bahkan di halaman manual.

Man-db meneruskan opsi tambahan ke pager melalui LESSvariabel lingkungan, yang mengurangi interpretasi dengan cara yang sama seperti opsi baris perintah. Pengaturan ini dikodekan pada waktu kompilasi dan dimulai dengan -i. (Nilainya "-ix8RmPm%s$PM%s$"pada Man-db 2.6.2; P…$bagiannya adalah string prompt.)

Jika Anda tidak ingin pencarian di halaman manual peka terhadap huruf besar-kecil, atau jika Anda ingin agar selalu peka terhadap huruf besar-kecil, tidak ada cara untuk mengonfigurasinya dalam man-db itu sendiri. Anda dapat membuat alias untuk manatau skrip pembungkus yang memanipulasi LESSvariabel lingkungan, karena Man-db menambahkan kontennya ke nilai saat ini jika ada:

alias man='LESS="$LESS -I" man'

Untuk mematikan -iopsi dan karenanya membuat pencarian selalu case-sensitive secara default di halaman manual:

alias man='LESS="$LESS -+i" man'

Anda juga dapat meng-hard-code nilai yang berbeda LESSdengan menyetel MANLESSvariabel lingkungan, tetapi jika Anda melakukannya, maka mancukup setel LESSke nilai MANLESS, Anda kehilangan baris judul khusus ("Halaman manual foo(42)") dan barang lainnya (khususnya, buat Pastikan untuk menyertakan -Rformat tebal dan garis bawah).


1

Ini adalah bagaimana less's -i(perintah baris switch) 'case sensitive' mode karya (yaitu, masih sensitif untuk kasus atas). Seperti yang ditunjukkan Gilles, penggunaan ini dikompilasi menjadi man-db.

Selain cara-cara yang ditunjukkan dalam Gilles answer WRT pengaturan alias +-iatau kebiasaan MANLESS, Anda dapat mengaktifkan pencocokan case yang ketat begitu halaman manual dibuka dengan -i(yang menghidupkan dan mematikan sakelar); Anda akan melihat pesan "Kasus penting dalam pencarian" dan sekarang xhanya cocok xdan Xhanya cocok X.

Man-db's manmemiliki -Iswitch, tetapi ini berlaku untuk pencarian halaman manual - mis., Secara default man BASHakan memberikan Anda halaman manual bash, padahal man -I BASHtidak.


0

"Apakah ada cara untuk memaksa huruf kecil xagar hanya cocok dengan huruf kecil xsaat menggunakan man?"

Ini satu cara

man -Tascii manpage |less

Saya tidak tahu detail gory, tetapi roffpemrosesan sedang melakukan markup dan pager tampaknya cocok dengan teks yang tidak ditandai, meskipun itu menampilkan teks yang ditandai.
Sangat membingungkan, semoga seorang nroffguru dapat menjelaskan pipa.


Ini menciptakan kekacauan di terminal GUI saya (penuh dengan ESC[1murutan jenis).
goldilocks
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.