Saya perhatikan bahwa ketika saya menggunakannya :nohlsearch
tidak benar-benar melakukan hal yang sama :set nohlsearch
.
Secara khusus, hlsearch
pengaturan tidak benar-benar dimatikan (yang adalah apa :set hlsearch
) selesai.
Untuk menunjukkan apa yang saya maksud:
:set hlsearch
:nohlsearch
:echo &hlsearch
Cetakan ini 1
( hlsearch masih disetel! )
:set hlsearch
:set nohlsearch
:echo &hlsearch
Ini mencetak 0
karena kami mematikan hlsearch dengan menggunakan cara standar untuk mematikan pengaturan di vim.
Jadi saya agak bertanya-tanya karena harus ada alasan sebenarnya untuk :nohlsearch
perintah ex ada.
Alasan mengapa saya peduli adalah bahwa sekarang saya memiliki kebutuhan dalam skrip vim saya untuk menguji apakah sorot pencarian aktif, dan karena saya menggunakan :nohlsearch
alih-alih ": set nohlsearch" di skrip saya yang lain, &hlsearch
pengujian saya selalu kembali 1
. Jadi saya bertanya-tanya apa yang saya ubah dengan tidak lagi menggunakan nohlsearch
perintah ex.
:nohlsearch
berlaku atau tidak ... Saya pikir karena ketidakhadirannya, saya harus menggunakan pelacakan semua:nohlsearch
panggilan dengan variabel.nnoremap <silent> <expr> <boundkey> SearchHighlight()
manaSearchHighlight()
dapat mengembalikan sebuah string":silent nohlsearch\<CR>"
. Juga terima kasih atasv:hlsearch
tipnya, hanya apa yang saya butuhkan.Apakah skrip Anda mengharuskan kondisi penyorotan saat ini diketahui?
Untuk mematikan
hlsearch
hanya pencarian saat ini, saya menggunakanCtrl-l
, dengan ini di .vimrc saya:Sorotan pencarian kembali dengan pencarian berikutnya ketika menggunakan perintah di atas.
Ctrl-l
nyaman karena penggunaan normal adalah untuk menghapus dan menggambar ulang layar.Untuk mengubah status sorotan pencarian hidup atau mati secara terus-menerus, saya menggunakan F3 sebagai sakelar saya:
sumber