Saya ingin membuat daftar pertandingan, ketika saya menekan:
/example
sehingga saya melihat di mana semua pertandingan sekaligus.
" put in your ~/.vimrc file
" START search related configs and helps
"
" ignore case when searching
set ignorecase
" search as characters are entered, as you type in more characters, the search is refined
set incsearch
" highlight matches, in normal mode try typing * or even g* when cursor on string
set hlsearch
" yank those cheat commands, in normal mode type q: than p to paste in the opened cmdline
" how-to search for a string recursively
" :grep! "\<doLogErrorMsg\>" . -r
"
" how-to search recursively , omit log and git files
" :vimgrep /srch/ `find . -type f \| grep -v .git \| grep -v .log`
" :vimgrep /srch/ `find . -type f -name '*.pm' -o -name '*.pl'`
"
" how-to search for the "srch" from the current dir recursively in the shell
" vim -c ':vimgrep /srch/ `find . -type f \| grep -v .git \| grep -v .log`'
"
" how-to highlight the after the search the searchable string
" in normmal mode press g* when the cursor is on a matched string
" how-to jump between the search matches - open the quick fix window by
" :copen 22
" how-to to close the quick fix window
" :ccl
" F5 will find the next occurrence after vimgrep
map <F5> :cp!<CR>
" F6 will find the previous occurrence after vimgrep
map <F6> :cn!<CR>
" F8 search for word under the cursor recursively , :copen , to close -> :ccl
nnoremap <F8> :grep! "\<<cword>\>" . -r<CR>:copen 33<CR>
" omit a dir from all searches to perform globally
set wildignore+=**/node_modules/**
" use perl regexes - src: http://andrewradev.com/2011/05/08/vim-regexes/
noremap / /\v
"
" STOP search related configs and helps
node_modules
? - - Bagaimana regex perl mengubah fungsi default Vim? - - Berikut ini adalah bagaimana saya merancang pencarian saya terhadap file .tex askubuntu.com/a/789769/25388 Alangkah baiknya belajar dari Anda bagaimana memperbaikinya. Itu tidak begitu intuitif jadi saya sendiri sering lupa logikanya.Dalam bentuk yang lebih panjang:
Anda dapat meninggalkan pola / regex dan Vim akan menggunakan kembali istilah pencarian sebelumnya.
Trivia: Alat grep dinamai sesuai urutan perintah ini.
sumber
:g//
- karena p (rint) adalah tindakan default, Anda juga dapat membiarkannya.:g/
bahkan lebih pendek!--context 9
?:%s/regular-expression//gn
Ini akan menghasilkan sesuatu seperti ini:X matches on Y lines
Anda juga bisa melakukan:
g/pattern/#
yang akan mencetak pola yang Anda inginkan dan jumlah baris.
sumber
#
tidak diperlukan. Ini menunjukkan nomor baris secara defaultjika Anda ingin melihat daftar ini dan beralih cepat di antara pertandingan, pertimbangkan untuk menggunakan
:vimgrep example %
atau
:grep example %
Ini akan mengisi "daftar kesalahan" dengan semua kecocokan sehingga Anda dapat menggunakan
:copen
daftar semuanya di buffer quickfix, tekan enter pada baris tertentu untuk melompat ke kecocokan itu, atau gunakan perintah seperti:cn
dan:cp
untuk bolak-balik.untuk penjelasan lengkap, lihat jawaban saya untuk pertanyaan serupa
sumber
E499: Empty file name for '%' or '#', only works with ":p:h"
pada MacVim 8.1Baru saja mempelajari yang baru: the
Location List
!Ketik
:lvim foo %
untuk mencarifoo
di file saat ini dan masukkan semua kecocokan yang berisifoo
ke dalam daftar lokasi .Ketik
:lopen
untuk membuka daftar lokasi di jendela quickfix, yang dapat dinavigasi sepenuhnya seperti biasa.Gunakan
:lnext
/:lprevious
untuk melalui daftar (gunakan tpope / pemetaan tanpa gangguan untuk pengalaman terbaik)sumber
Kemungkinan lain adalah dengan menggunakan perintah pencarian file yang disertakan.
Ini akan mencantumkan semua kemunculan kata di bawah kursor. Ini mungkin lebih dari yang Anda butuhkan, karena itu juga akan mencari file apa pun yang disertakan dalam file saat ini.
Tetapi hal yang menyenangkan tentang perintah ini adalah bahwa tampilan hasil pencarian juga menunjukkan hitungan jumlah pertandingan, selain nomor baris dari setiap pertandingan.
untuk melihat banyak varian.
Catatan tentang
Ini dapat dikurangi lebih lanjut menjadi
karena, seperti yang dikatakan orang lain, c (rint) adalah tindakan default.
sumber
[I
dengan konteks, seperti pada grep--context 9
?Anda bisa mendapatkan
quickfix
jendela yang bagus dengan kecocokan dari pola pencarian Anda saat inisangat berguna jika sebelumnya Anda membuat pola pencarian yang kompleks menggunakan just
/pattern
Sunting : baru tahu ini juga berfungsi untuk semua buffer terbuka
sumber
Menggunakan
:set hlsearch
akan menyorot semua kecocokan dengan warna kuning memungkinkan Anda untuk memindai file dengan mudah untuk kecocokan. Itu mungkin bukan yang Anda inginkan, setelah mencari,: g // p akan memberi Anda kecocokan yang terdaftarsumber
:nohl
untuk menghapus sorotan saat Anda tidak membutuhkannya lagi.Untuk menguraikan ini ... daripada
Anda juga bisa menulis langsung
atau, karena p (rint) adalah aksi default untuk perintah: g (lobal), ini dapat disingkat menjadi
Dan alih-alih p (rint), tindakan lain dimungkinkan, misalnya d (elete). Lihat: bantuan: global
sumber
Jika sudah
:set number
, perintah di atas juga menampilkan nomor baris.Jika belum
:set number
, makaakan menampilkan nomor baris.
sumber
Saya telah menulis sepotong kode untuk ini. Ini sebenarnya menghindari masalah di
vimgrep
. Ia bekerja bahkan dengan file tanpa nama. Dan lebih mudah digunakan.Ketika Anda menyebutnya dengan pola, itu membuka jendela lokasi dengan semua kecocokan.
Ini bisa menjadi perintah
Jadi yang perlu Anda lakukan hanyalah mengetik
:Mat pattern
Saya juga menggunakan pemetaan berikut untuk mendapatkan kecocokan dari pemilihan visual saat ini.
sumber
Ctrl-f untuk menampilkan semua hasil pencarian:
sumber