回答
" 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
使用:set hlsearch
將突出顯示黃色的所有匹配項,以便您輕鬆掃描文件進行匹配。這可能不是你想要的東西,雖然,搜索後:摹//則p給你列出匹配
詳細闡述一下該...而不是
/example
:g//p
你也可以直接寫
:g/example/p
,或者爲p(RINT)是默認動作:克(葉形)命令,這可以縮短爲
:g/example
而不是p(rint),其他操作是可能的,例如刪除)。參見:幫助:全球
你也可以做一個:
g/pattern/#
,將打印您需要的模式和行號。
,如果你想看看這個名單和比賽之間快速切換,可以考慮使用
:vimgrep example %
或
:grep example %
這將填充「錯誤清單」與所有以便您可以使用:copen
將它們全部列出在quickfix緩衝區中,在特定行上按Enter鍵跳轉到該匹配項,或使用類似:cn
和:cp
來回。
了詳盡的解釋,見my reply to a similar question
另一種可能性是使用包含文件搜索命令。
[I
這將列出該詞在光標下的所有出現位置。它可能比你需要的多,因爲它也會搜索當前文件中包含的任何文件。
但是這個命令的好處在於除了每個匹配的行號之外,搜索結果顯示還顯示了匹配數量的計數。
:help include-search
看到很多變種。
的注意事項有關
:g//p
這可以進一步因爲,正如其他人所說,P(RINT)是默認的動作減少到
:g//
。
剛學了一個新的:Location List
!
類型:lvim foo %
在當前文件中搜索foo
,並將包含foo
的所有匹配輸入位置列表。
輸入:lopen
在quickfix窗口中打開位置列表,該窗口可以像往常一樣完全導航。
使用:lnext
/:lprevious
通過名單,並在(使用tpope /未受損傷映射最佳體驗)
g/pattern
如果你有:set number
,上面的命令將顯示行數爲好。
如果您還沒有:set number
,然後
g/pattern/#
將顯示行號。
,你可以得到一個不錯的quickfix
窗口火柴形成當前的搜索模式
:vim // %
:copen
超級方便,如果你以前製作只用/pattern
編輯複雜的搜索模式:剛剛發現這也適用於所有打開的緩衝區
:bufdo vimgrepadd // %
:copen
CTRL-F列出所有搜索結果:
nmap <C-f> :vimgrep /<C-r>//g %<CR> \| !:copen <Enter>
- 1. 如何僅在vim中的模式搜索中導出匹配項?
- 2. 的Vim的EasyMotion搜索匹配
- 3. 如何在列表項中搜索匹配項?
- 4. 如何搜索列表中的匹配項目?
- 5. 在vim腳本中搜索模式匹配的VIM檢查
- 6. Vim:如何更改搜索匹配和quickfix選擇的突出顯示顏色
- 7. VIM:我如何搜索匹配不具有特定字符線?
- 8. 如何搜索和Vim中與子匹配替換值
- 9. 顯示項目,如果搜索匹配
- 10. 的Grails GORM搜索匹配另一個列表列表項
- 11. tablesorter小部件篩選任何匹配項。如何只搜索所有列(刪除個別列的搜索)
- 12. vim配置,高亮搜索
- 13. 如何列出easymotion vim中的所有匹配
- 14. 正在搜索匹配的主列表
- 15. 搜索與變量匹配的列
- 16. LINQ搜索/匹配
- 17. SharePoint搜索KQL XRANK匹配項數
- 18. 搜索並替換多個匹配項
- 19. 的MongoDB/Mongoid:搜索匹配的第一個項目陣列
- 20. 如何搜索html表中的列並突出顯示任何匹配
- 21. 如何評論與VIM中的搜索模式匹配的所有行
- 22. 在vim中搜索只有1個匹配的行
- 23. vim向後搜索並替換之前匹配的模式
- 24. 匹配vim搜索中的右括號並替換
- 25. vim如何搜索URL
- 26. 如何搜索與marklogic中的模式匹配的URI列表?
- 27. 如何讓vimgrep做詞匹配搜索?
- 28. 如何搜索匹配特定模式
- 29. 如何使用搜索/替換訪問vim中的正則表達式匹配?
- 30. 如何在vim中顯示與摺疊搜索相匹配的行?
應該是 ':一套hlsearch' 裏沒有 ':hlsearch' 使用。 – 2009-02-04 01:13:30
當你不需要它們時,也可以使用`:nohl`來清除亮點。 – Kos 2014-10-16 08:38:17