Ketika Anda mencari kata dalam file dengan sesuatu seperti /console.log
, semua contoh console.log
disorot.
Saat Anda tidak lagi tertarik dengan hal ini, penyorotan bisa mengganggu. Strategi saya saat ini untuk menghapus sorotan adalah melakukan sesuatu seperti /asntehua
. Apakah ada cara yang tepat untuk menghapus penyorotan kata ini?
/skldafjlksjdf
;):nnoremap <silent> <CR> :nohlsearch<CR><CR>
. Tekan kembali dalam mode perintah, dan sorotan menghilang.Jawaban:
Sebagai alternatif
:noh
, saya suka:let @/=""
memetakan ke jalan pintas keyboard.Perbedaannya adalah bahwa
:noh
meninggalkan istilah pencarian dalam register pencarian, jadin
danN
dalam mode normal melanjutkan pencarian dengan melompat ke pertandingan berikutnya / sebelumnya dan menyoroti kembali. Menggunakan:let @/=""
, di sisi lain, menyebabkan pesanE25: No previous regular expression
dan meninggalkan kursor di mana itu , yang terutama nyaman jika Anda belum tahu tentangctrl
-o
belum dan sengaja memukuln
.Ini juga bisa digunakan dengan cara lain. Untuk menyebabkan vim menyorot beberapa teks tanpa melompat ke sana, Anda bisa
:let @/="some text"
Dalam ekspresi ini, @ memungkinkan Anda merujuk ke register, dan @ / adalah register yang memegang pola pencarian terakhir.
sumber
Cukup ketik
(Dimana
<cr>
melambangkan carriage return, yaitu Enter.) Versi lengkap dari perintah ini adalah:nohlsearch
.Untuk kenyamanan, Anda dapat memiliki pemetaan seperti
di Anda
.vimrc
. Karena pemimpin saya adalah Space, ini memungkinkan saya untuk menghapus sorotan hanya dengan mengetuk spasi dua kali. (Secara default,<Leader>
diatur ke\
)Opsi populer lainnya adalah untuk mengikatnya ke Ctrl+ L, karena ini kurang lebih merupakan default untuk 'layar terminal digambar ulang', yang kira-kira sama dengan apa yang Anda lakukan:
Ini memiliki efek samping juga menggambar ulang layar terminal, yang mungkin lambat jika koneksi terminal Anda lambat (yang sangat jarang hari ini).
CATATAN: Jika Anda menggunakan tpope / vim-sensible maka sudah menawarkan
<C-l>
pemetaan yang tercantum di atas.sumber
Nonaktifkan sorotan pencarian secara permanen
Kecocokan tidak akan disorot setiap kali Anda melakukan pencarian menggunakan /
Hapus highlight hingga pencarian berikutnya
atau
:nohlsearch
(kosong sampai natau Nditekan atau pencarian baru dilakukan)Hapus sorotan saat menekan ESC
Hapus sorotan saat menekan tombol lain atau peta khusus
Hapus highlight saat menekan \(garis miring terbalik)
Hapus highlight saat memukul ESCdua kali
sumber
nnoremap <esc> :noh<return><esc>
ke sayavimrc
tetapi tidak berfungsi. Saya telahjk
memetakan untuk melarikan diri, mungkinkah itu sebabnya?ESC
kunci?jk
tidak mematikan teks yang disorot (tetapi masih berfungsi sebagaiEsc
). MenekanEsc
tombol saya di kiri atas keyboard tidak akan mematikan teks yang disorot.jk
peta Anda di bawahESC
peta dan pastikan Anda menggunakan yang sederhanamap
alih-alihnoremap
Setelah mencoba beberapa solusi yang disarankan untuk pintasan untuk ini di ~ / vimrc, saya memutuskan untuk menambahkannya
nmap <esc><esc> :noh<return>
. Escape ganda mencegah gangguan dengan fungsi tombol panah. Jika Anda dalam mode sisipkan, triple escape diperlukan. Ini cepat untuk dieksekusi dan mudah diingat.sumber
Saya menambahkan autocmd ke .vimrc saya yang menghilangkan sorotan kapan saja Anda masuk ke mode insert.
sumber
nohl
alih-alihlet @/=""
akan menjadi pendekatan yang lebih baik, karena Anda tidak akan mengganggu pencarian Anda saat ini.:let @/=""
perintah tetapiautocmd InsertEnter * :noh
tidak karena suatu alasan, tahu mengapa?Jika Anda tidak ingin menyorot setelah pencarian apa pun, Anda dapat menggunakan ini (lebih baik):
atau ini (lebih buruk):
sumber
Ketika saya mengetik
:help incsearch
, saya menemukan yang berikut ini di manual:yang saya mengundurkan diri untuk digunakan karena solusi lain yang saya coba tidak sempurna dan solusi ini datang "langsung dari mulut kuda", sehingga untuk berbicara. Ini menyoroti semua kecocokan pencarian di jendela saat ini.
sumber
Ini memiliki keuntungan bahwa Anda tidak harus mengetiknya exaclty. Kerugiannya adalah, ada kemungkinan sekitar 1: 68719476736 dalam file 4096 byte yang ini tidak berfungsi dan kursor Anda akan melompat ke tempat yang berbeda. Peluang ini meningkat untuk file yang lebih besar.
sumber
asdfasdf
itu spesial dalam arti bahwa itu sering terjadi pada file praktis, daripada urutan 8 byte yang dipilih secara acak. Dengan demikian, peluangnya jauh lebih tinggi. :-)Saya tidak berpikir menghapus hls sama sekali akan menjadi hal yang baik, bagaimana dengan membuat mudah untuk mengaktifkan atau menonaktifkan membuat pintasan mudah (boolean) Dalam kasus saya ->
Keajaiban terjadi karena "
!
" di akhir pengaturansumber
Saya menemukan bahwa sangat jarang bagi saya untuk ingin menyoroti sama sekali dan ketika saya perlu menyoroti itu hanya untuk sesaat. Solusi saya adalah
Ini memungkinkan penyorotan ketika Anda menekan
\/
dan menonaktifkannya lagi jika Anda menekan lagi. Ini memberikan akses mudah untuk menyoroti dalam kasus yang jarang terjadi saat Anda membutuhkannya.sumber