Saya suka pengaturan "hlsearch", tetapi setelah saya selesai mencari, saya merasa menjengkelkan. Apalagi jika saya mencari sesuatu yang memiliki banyak kecocokan. Saya tahu bahwa saya dapat mematikan ini
:set nohlsearch
Tapi ini membutuhkan 16 kali penekanan tombol, dan bahkan lebih menjengkelkan, saya harus mengaktifkannya kembali untuk pencarian berikutnya dengan
:set hlsearch
Apakah ada cara agar hlsearch aktif secara otomatis ketika saya mulai mencari, dan mati ketika saya selesai mencari? Misalnya, jika saya memasukkan mode penyisipan, atau memodifikasi teks, sudahkah hlsearch mematikan tanpa penekanan tombol tambahan?
/
atau?
, atau jika saya menekann
atauN
, itu akan menyala tanpa saya perlu menekan tombol lagi.:nno <BS> :set hls!\|set hls?<CR>
- satu baris, satu penekanan tombol, umpan balik negara, dan tidak mencoba menebak-nebak saat Anda mungkin ingin atau tidak ingin disorot. Terkadang saya ingin menyorot kiri pada layar saat mengedit. Kadang-kadang saya tidak melakukannya, misalnya menggunakan/
gerakan dengan operator.nnoremap <M-\> :set hlsearch!<CR><Bar>:echo 'hlsearch: ' . ['Off', 'On'][&hlsearch]<CR>
Jawaban:
Ada cara yang jauh lebih nyaman. Daripada menggunakan
yang benar-benar mematikan pengaturan hlsearch, gunakan
Ini hanya akan mematikan hlsearch sampai Anda mencari lagi. Dari
:help nohls
Namun, solusi ini tidak sempurna, karena Anda masih harus mengetik
:nohls
yang mana rasa sakit yang harus dilakukan setelah setiap pencarian. Anda dapat menyiasatinya dengan pemetaan, misalnyaTetapi ada solusi yang lebih baik lagi ! haya14busa / incsearch.vim . Ini, setidaknya menurut saya, sebuah plugin vim yang penting . Fitur utamanya adalah semua kecocokan pencarian disorot dalam waktu nyata, saat Anda mengetik regex Anda. Sebagai contoh:
Namun, fitur sekunder yang juga disediakan adalah opsi untuk segera mengaktifkan dan mematikan hlsearch saat Anda memulai / menghentikan pencarian. Untuk mengaktifkan fitur ini, Anda harus menambahkan
untuk Anda
.vimrc
.Jika Anda memiliki
n
pemetaan lain , Anda harus mematikannya. Sebagai contoh, saya dulu pernah punyaKedua pemetaan ini tidak kompatibel dengan satu sama lain!
sumber
set hlsearch
. Jika Anda mendefinisikannya divimrc
dalamnya akan menimpa:noh
setiap kali Anda sumbervimrc
. Untuk menyelesaikan ini saya milikiif !&hlsearch | set hlsearch | endif
divimrc
. (Dan ini adalah masalah lain yang diselesaikan plugin.)vim-cool adalah plugin sederhana yang melakukan hal ini.
Ini bekerja tanpa memetakan kembali dengan menggunakan perintah
CursorMoved
danInsertEnter
autocommand.sumber
Saya gunakan
<Leader><Enter>
sebagai jalan pintas ke:noh
. (Pemimpin saya,
, jadi itu cukup dekat)Ini akan mematikan highlight hingga pencarian Anda berikutnya.
sumber
Seperti yang telah Anda catat dalam jawaban Anda sendiri , jauh lebih efisien untuk mematikan penyorotan dengan
:nohlsearch
perintah (yang dapat disingkat:noh
) daripada mematikan seluruh fitur dan kemudian mengembalikannya pada saat Anda mencari di lain waktu.Jika Anda ingin menonaktifkan penyorotan setiap kali Anda menggunakan
i
untuk memasukkan mode penyisipan, Anda dapat membuat pemetaan sederhana untuk melakukannya:Ini dibiarkan sebagai latihan bagi pembaca untuk membuat pemetaan serupa untuk perintah lain di mana mereka ingin menyoroti dimatikan.
sumber
Mungkin terdengar bodoh atau naif, tetapi yang saya lakukan ketika saya ingin berhenti menyoroti adalah saya mencari string acak yang (hampir pasti) tidak ada dalam dokumen. Sesuatu seperti ini:
Memang, memang diperlukan beberapa pukulan tombol, tetapi benar-benar acak, sehingga dapat diketik dalam waktu singkat.
sumber
n
danN
tidak lagi berfungsi, dan juga hal-hal seperti:%s//something
atau:g//something
. Ini juga mengacaukan riwayat pencarian AndaSaya telah menemukan itu lebih intuitif untuk memetakan kembali Ctrl- Lmengecat untuk memasukkan
:nohls
:sumber
:help
!Saya menggunakan
<Leader><Enter>
sebagai jalan pintas ke:hls
dan memiliki pemimpin saya ditetapkan sebagai ruang.Setelah mencari item akan disorot, untuk mematikannya, tekan
<Space><Esc>
. Dan jika Anda memutuskan ingin menampilkan kembali hasil pencarian, tekan<Space><Esc>
. Carahls!
memetakan ikatan ini untuk beralih pengaturan untukhls
(singkatan untukhlsearch
, yaitu menyoroti hasil pencarian) (sehingga toggle!
pengaturan tepat sebelum itu).sumber
Tambahkan makro ini ke .vimrc Anda
Ini akan memungkinkan Anda untuk beralih hilighting dengan #h
sumber