Buat Kurang sorot pola pencarian alih-alih cetak miring

23

Untuk pemahaman saya, orang menggunakan lesssebagai pager, dan ketika mencari kata kunci menggunakannya less"menyoroti" kata kunci dengan huruf miring. Saya merasa sangat tidak nyaman, jadi saya ingin mengubahnya menjadi sesuatu seperti vim di set hlsearchmana pola yang ditemukan memiliki latar belakang yang berbeda.

Saya mencoba menjalankan man -P vim systemdtetapi berhenti dengan status kesalahan 1, jadi sepertinya saya terjebak less.

Tidak ada yang dapat saya temukan dalam man lessmembantu (sebagai gantinya saya menemukan bahwa opsi -Gakan mematikan menyoroti semua bersama-sama yang bahkan lebih buruk daripada huruf miring).

Itu dikatakan, adakah yang tahu cara mencapai sorotan pencarian (mengubah warna latar belakang) di halaman manual?

FYI Saya menjalankan Ubuntu 14.10

Saya menemukan pertanyaan ini sepertinya menanyakan hal yang sama tetapi saya tidak yakin apakah saya mengikuti bagaimana cara kerjanya ( LESS_TERMCAP_so). The lesshalaman manusia tidak menyebutkan ini. (Saya mendapatkan hasil aneh dengan solusi ini)

sgp667
sumber
Itu berarti Anda menempatkan baris itu di ~/.bashrcfile Anda . export LESS_TERMCAP_so=$'\E[30;43m'Lihat jawaban ini juga unix.stackexchange.com/questions/38634/...
iyrin
1
Kadang saya gunakan man man | vim -untuk memanfaatkan konfigurasi vim saya, kunci dan fungsi
JJoao
Apakah Anda mencari solusi untuk ini? Saya memiliki masalah yang sama persis pada satu mesin, dan saya tidak tahu apa bedanya. LESS_TERMCAP_soVariabel di atas menyebabkan seluruh file berubah menjadi latar belakang oranye ...
user1338062
Saya khawatir saya masih berjuang dengan ini
sgp667

Jawaban:

16

Menemukan jawaban atas pengguna super: /superuser/566082/less-doesnt-highlight-search

Sepertinya itu ada hubungannya dengan pengaturan TERM Anda. Sebagai contoh, kurang menyoroti bertindak secara normal (white background highlight) ketika di jendela terminal gnome normal, tetapi ketika saya di tmux, huruf miring terjadi. Perbedaannya bagi saya adalah JANGKA sedang diatur ke "layar" ketika di tmux, tetapi "xterm-256color" ketika tidak. Ketika saya mengatur "TERM = xterm-256color" di jendela tmux, penyorotan dalam waktu kurang kembali ke penyorotan latar belakang.

pembersihan
sumber
Saya sudah berhasil melupakan pertanyaan ini tetapi ini adalah berita menarik. Segera setelah saya mendapatkan tangan saya di komputer saya akan menguji ini!
sgp667
1
ini adalah solusi yang tidak praktis, karena aplikasi lain bergantung pada TERM yang diatur ke layar * ketika dalam tmux, seperti WeeChat. Ketika tidak disetel ke layar * dalam tmux, WeeChat memiliki masalah render yang aneh.
Blaine Lafreniere
Saya telah mencatat bahwa saya memiliki masalah dengan tmux <2.0 dan tidak memiliki masalah sejak tmux v2.
artfulrobot
Temuan yang bagus. Sekarang saya miliki set -g default-terminal "xterm-256color"di ~ / .tmux.conf saya pada kotak CentOS 7 saya (dan lainnya).
sshow
Periksa juga untuk melihat apakah screen-256colorada: coba ls /usr/share/terminfo/s/.
aDroid
8

Penyebutan LESS_TERMCAP_sotidak lengkap. Itu variabel lingkungan khusus kurang digunakan untuk menimpa kemampuan termcap so(menonjol). Untuk menggunakan kemampuan ini, Anda harus menyediakan kemampuan se(standend) juga.

The terminfo (5) Halaman pengguna memberikan ringkasan fitur ini untuk terminfo (smso / rmso) dan termcap (jadi / se) nama:

   enter_standout_mode           smso       so        begin standout mode
   exit_standout_mode            rmso       se        exit standout mode  

Bagian tentang menyoroti menjelaskan:

Jika terminal Anda memiliki satu atau lebih jenis atribut tampilan, ini dapat direpresentasikan dalam sejumlah cara berbeda. Anda harus memilih satu bentuk tampilan sebagai mode menonjol , mewakili format yang baik, kontras tinggi, mudah dilihat, untuk menyorot pesan kesalahan dan pengambil perhatian lainnya. (Jika Anda memiliki pilihan, video yang terbalik ditambah setengah-terang yang baik, atau video yang terbalik sendiri.) Urutan untuk masuk dan keluar dari mode menonjol diberikan sebagai smso dan rmsomasing-masing.

Jika Anda ingin menggunakan warna untuk menonjol , Anda harus memberikan LESS_TERMCAP_sewarna yang sesuai yang mengatur ulang. Ini relatif mudah dilakukan asalkan Anda tidak mengharapkan untuk menggunakan warna pada halaman manual karena alasan lain (seperti menggunakan fitur warna SGR groff).

Dengan asumsi nilai yang disarankan dalam komentar:

export LESS_TERMCAP_so=$'\E[30;43m'

maka Anda dapat mengatur ulang itu untuk sebagian besar terminal menggunakan

export LESS_TERMCAP_se=$'\E[39;49m'

Omong-omong, alasan untuk huruf miring adalah bahwa deskripsi terminal untuk GNU screenmenggunakan urutan escape standar untuk huruf miring sebagai kemampuannya sendiri / kemampuan standend. Beberapa di antaranya dibahas dalam entri basis data terminal .

Thomas Dickey
sumber
Ini adalah solusi pertama yang benar-benar bekerja untuk saya (dalam tmux pada Mac). Saya hanya menambahkan kedua baris ekspor di atas ke dalam file konfigurasi bash saya.
Marlun
Namun jika saya menulis "ekspor" untuk melihat semua variabel lingkungan saya semuanya setelah garis-garis ini disorot dan terminal terus disorot jadi saya harus menutupnya dan memulai yang baru.
Marlun
Dalam kasus seperti itu, saya memasukkan variabel ke dalam skrip yang memanggil program yang membutuhkan variabel tertentu. Variabel yang diubah hanya berlaku dalam skrip.
Thomas Dickey
export | lessberfungsi sebagai solusi juga
Marlun
4

Tekan ESCuuntuk mematikan sorotan pencarian lesssetelah pencarian; pencarian baru akan menyalakannya lagi, sehingga untuk mematikan sorotan pencarian secara permanen untuk klik sesi -G.

Secara bergantian letakkan LESS='-G'di lingkungan Anda, atau jalankan manseperti:

LESS='-G' man less

Ironisnya ini semua didokumentasikan di lesshalaman ...

Anda juga dapat meletakkan yang berikut ini di lingkungan, misalnya di .bash_profile:

export MANPAGER='less -G'
Wurtel
sumber
seperti yang saya jelaskan dalam pertanyaan saya, saya tidak ingin mengubahnya secara lengkap, saya ingin mengubah tampilannya di layar saya. Pertanyaan saya mungkin menyesatkan karena seseorang mengeditnya untuk saya.
sgp667
1

Untuk tmux saya atur TERMke tmux-256color . Di antara hal-hal baik lainnya, ini memiliki "biasa" terbalik menyoroti kurang . Bekerja dengan baik ketika menggunakan sesuatu yang modern seperti fedora, atau cygwin.

$ cat ~/.tmux.conf
⋮
set-option -g default-terminal tmux-256color

Paket ncurses pada Centos tidak memiliki dua definisi tmux ( tmux dan tmux-256color ). Saya mengimpornya dengan mudah dari fedora. Kerutan sedikit adalah bahwa Centos ' ncurses terlalu tua untuk memahami file terminfo fedora secara langsung.

Di fedora:

$ infocmp tmux256-color >temp.txt

Di Centos:

$ scp fedora-machine:temp.txt .
$ tic temp.txt

Kemudian di dalam tmux :

$ TERM=tmux-256-color man tmux

Hasil!

FYI perintah tic menempatkan deskripsi terminal yang dikompilasi ke dalam basis data terminfo pribadi Anda, yaitu ~/.terminfo/t/tmux-256color(dalam hal ini). Jangan ragu untuk memindahkan ini ke basis data global jika itu yang Anda inginkan:

$ sudo mv ~/.terminfo/t/tmux-256color /usr/share/terminfo/t/
bobbogo
sumber