Bagaimana saya bisa menyorot semua kemunculan kata yang dipilih di GVim, seperti di Notepad ++?
159
Dalam mode Normal:
:set hlsearch
Kemudian cari pola dengan perintah /
dalam mode Normal, atau <Ctrl>o
diikuti oleh /
dalam mode Sisipkan. *
dalam mode Normal akan mencari kemunculan kata berikutnya di bawah kursor. The hlsearch
pilihan akan menyoroti semua dari mereka jika ditetapkan. #
akan mencari kemunculan kata sebelumnya.
Untuk menghapus highlight dari pencarian sebelumnya:
:nohlsearch
Anda mungkin ingin memetakan :nohlsearch<CR>
ke beberapa tombol yang mudah.
hlsearch
banyak Anda mungkin ingin untuk memetakan:set hlsearch!
bukan:set nohlsearch
. Ini mengubah pengaturan daripada selalu mematikannya.*
atau#
oleh<Ctrl>o
dalam mode normal.:nohlsearch
, Anda bisa menggunakan:noh
.vimrc
:noremap <F4> :set hlsearch! hlsearch?<CR>
untuk beralih di antara highlight dan menghapus highlight oleh<F4>
.The
*
key akan menyoroti semua kejadian dari kata yang berada di bawah kursor.sumber
&hlsearch
aktif.#
.Saya tahu daripada pertanyaan yang sangat lama, tetapi jika seseorang tertarik pada fitur ini, dapat memeriksa kode ini http://vim.wikia.com/wiki/Auto_highlight_current_word_when_idle
sumber
cara paling sederhana, ketik mode normal
*
Saya juga punya pemetaan ini untuk mengaktifkan dan menonaktifkan
Pilih kata dengan mengkliknya
Bonus: Fungsi CountWord
Memilih kata dengan mouse dan menghitung kejadian sekaligus: OBS: Perhatikan bahwa dalam versi ini kita memiliki perintah "CountWord" di akhir
sumber
nnoremap * *``cgn
dannnoremap # #``cgN
*
, bagaimana cara mematikan penyorotan?:noh
atau:nohlsearch
nnoremap <silent> * :execute "normal! *N"<cr>
dannnoremap <silent> # :execute "normal! #n"<cr>
? Ini hanya menyoroti kata di bawah kursor tetapi tidak memindahkannya ke kejadian berikutnya.Solusi berbasis pencarian ( *, /...) memindahkan kursor, yang mungkin disayangkan.
Alternatifnya adalah menggunakan plugin mark.vim yang disempurnakan , kemudian selesaikan Anda
.vimrc
untuk membiarkan sorotan pemicu klik dua kali (saya tidak tahu bagaimana pilihan keyboard dapat memicu perintah):Ini memungkinkan beberapa penyorotan, ketekunan, dll.
Untuk menghapus penyorotan, baik:
:Mark
(matikan hingga pilihan berikutnya):MarkClear
sumber
:set noincsearch
. Menurut pendapat saya itu adalah salah satu fitur yang paling menyebalkan di Vim dan salah satu hal pertama yang saya nonaktifkan untuk pemasangan baru.*
akan memindahkan kursor tanpa syarat. Dan saya tidak bisa melihat bagaimanaincsearch
mungkin menjengkelkan, karena itu hanya 'melihat ke depan', melakukan pencarian saat ini tanpa benar-benar mengubah posisi Anda.incsearch
akan mencegah gerakan, tetapi tes cepat mengkonfirmasi Anda benar. Permintaan maaf saya. Namun, itu super mudah untuk membuat pemetaan yang mencegah gerakan::nnoremap * *N
. Saya tidak percaya Anda tidak merasa terganggu karena kursor Anda melompati layar saat Anda melakukan pencarian. Tapi ... hal-hal ini sepenuhnya subjektif. Vive la différence ;-):let @/='hilight_this'
, dengan asumsi Anda telahhlsearch
mengaktifkan. Ini menyoroti teks tanpa melompat, dan Anda tidak perlu mengubah pengaturan yang ada. Ini mengubah nilai yang saat ini disimpan dalam register pencarian.Pertama (atau di .vimrc Anda):
Lalu posisikan kursor Anda di atas kata yang ingin Anda sorot, dan tekan
*
.hlsearch
berarti menyorot semua kemunculan pencarian saat ini, dan*
berarti mencari kata di bawah kursor.sumber
Pertama pastikan bahwa hlsearch diaktifkan dengan mengeluarkan perintah berikut
Anda juga dapat menambahkan ini ke file .vimrc Anda sebagaimana diatur
sekarang ketika Anda menggunakan mekanisme pencarian cepat dalam mode perintah atau perintah pencarian biasa, semua hasil akan disorot. Untuk bergerak maju di antara hasil, tekan 'n' untuk bergerak mundur tekan 'N'
Dalam mode normal, untuk melakukan pencarian cepat untuk kata di bawah kursor dan untuk beralih ke kejadian berikutnya dalam satu perintah tekan '*', Anda juga dapat mencari kata di bawah kursor dan pindah ke kejadian sebelumnya dengan menekan '# '
Dalam mode normal, pencarian cepat juga dapat dipanggil dengan
untuk menghapus highlight pada penggunaan ocuurences, saya telah mengikat ini ke shortcut di .vimrc saya
sumber
Aktifkan penyorotan pencarian:
Kemudian cari kata:
sumber
Favorit saya untuk melakukan ini adalah plugin mark.vim . Memungkinkan untuk menyorot beberapa kata dalam berbagai warna secara bersamaan.
Contoh Screenshot
sumber
untuk menyorot kata tanpa memindahkan kursor, plop
ke dalam vimrc Anda.
Apa yang baik tentang ini
g*
dang#
masih akan bekerja seperti "normal"*
dan#
.Untuk mengatur
hlsearch
off, Anda dapat menggunakan "short-bentuk" (kecuali jika Anda memiliki fungsi lain yang dimulai dengan "noh" dalam mode perintah)::noh
. Atau Anda dapat menggunakan versi panjang::nohlsearch
Untuk kenyamanan yang ekstrem (saya menemukan diri saya beralih
hlsearch
mungkin 20 kali per hari), Anda dapat memetakan sesuatu untuk beralihhlsearch
seperti:.:. jika Anda
<leader>
adalah \(secara default), Anda dapat menekan \st(cepat) dalam yang normal mode untuk beralihhlsearch
.Atau mungkin Anda hanya ingin
:noh
memetakan:Di atas hanya berjalan
:nohlsearch
begitu (tidak seperti:set hlsearch!
) itu masih akan menyorot kata lain kali Anda menekan *atau #dalam mode normal .Bersulang
sumber
mungkin ?
sumber
Menggunakan
autocmd CursorMoved * exe printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\'))
Pastikan Anda telah
IncSearch
menetapkan sesuatu. miscall s:Attr('IncSearch', 'reverse')
. Atau Anda dapat menggunakan grup sorotan lain sebagai gantinya.Ini akan menyoroti semua kemunculan kata di bawah kursor Anda tanpa penundaan. Saya menemukan bahwa penundaan memperlambat saya ketika saya memeriksa kode. Warna highlight akan cocok dengan warna kata, sehingga tetap konsisten dengan skema Anda.
sumber
Mengapa tidak adil: z /
Itu akan menyoroti kata saat ini di bawah kursor dan kejadian lainnya. Dan Anda tidak harus memberikan perintah terpisah untuk setiap item yang Anda cari. Mungkin itu tidak tersedia di gvim yang tidak suci? Secara default vim sudah dalam vim.
* hanya baik jika Anda ingin kursor pindah ke kejadian berikutnya. Saat membandingkan dua hal secara visual, Anda seringkali tidak ingin kursor bergerak, dan sangat menjengkelkan untuk menekan tombol * setiap kali.
sumber
~/.vimrc
file Anda" highlight the searched items set hlsearch " F8 search for word under the cursor recursively , :copen , to close -> :ccl nnoremap <F8> :grep! "\<<cword>\>" . -r<CR>:copen 33<CR>
:so%
Dalam model normal pergi ke kata.
Tekan * Tekan F8 untuk mencari secara rekursif di bawah seluruh proyek Anda di atas kata
sumber
Misalnya plugIns ini:
https://github.com/rrethy/vim-illuminate
https://github.com/itchyny/vim-cursorword
Cukup cari di bawah kursor di vimawesome.com
Kuncinya, seperti yang disebutkan clagccs , adalah bahwa sorot TIDAK bertentangan dengan pencarian Anda : https://vim.fandom.com/wiki/Auto_highlight_current_word_when_idle
Tangkapan layar tentang bagaimana BUKAN bertentangan dengan pencarian: Catatan:
sumber