本篇文章介紹 vim 的一些使用技巧:vim
vim 在文件內用 /
或者 ?
進行查找,不會列出全部查找到的內容,須要經過 n 或者 N 命令逐一跳轉到匹配的位置。命令行
若是想要用列表的形式顯示全部查找到的內容,能夠用 [I
命令。注意,[
後面跟着的是大寫字母I
。該命令在查找 count_matches 單詞時,會顯示相似於下面的效果:code
src/main.c 1: 586 static int count_matches; 2: 1270 if (count_matches) 3: 1879 count_matches = 1; 4: 2093 count_matches = 0; Press ENTER or type command to continue
能夠看到,使用 [I
命令,一次性列出了包含搜索內容的全部行,第二列是對應行的行號。以後,能夠在命令行輸入 :number
跳轉到 number 對應的行。例如,輸入 :1879
,回車後會跳轉到 1879 行。rem
[I
表示從文件開頭開始查找當前光標下的關鍵字,若是當前光標不在要搜索的關鍵字下,能夠先用 /
或者 ?
搜索,跳轉到關鍵字後,再用 [I
命令。字符串
若是當前文件是 C/C++ 代碼文件,[I
也會查找 #include
指定的頭文件。便可能會列出多個文件下的匹配內容。若是不想要這個效果,能夠先執行 :set include=
命令,將include選項的值設成空,就不會查找include的頭文件,而後再執行 [I
命令,查找完後執行 :set include&
命令重置include選項爲默認值。
能夠映射快捷鍵把這三個命令放到一塊兒,方便操做。 例以下面映射爲 F7 鍵:class
:map <F7> :set include=<CR>[I:set include&<CR>
若是不是 C/C++ 代碼文件,不須要作其餘設置,[I
命令只會查找當前文件。vimrc
注意:[I
命令不能查找少數的特殊字符,例如不能查找右大括號}
,可是能夠查找左大括號{
。搜索
vim 打開搜索高亮 (set hlsearch) 後,搜索到的內容會一直高亮顯示。技巧
若是要去掉搜索內容的高亮,能夠搜索一些不存在的內容,搜索不到就會去掉以前的高亮。 map
上面是取巧的作法,標準作法是執行 :nohlsearch
命令。
這個命令會去掉搜索內容的高亮,但仍是打開搜索高亮功能,下次搜索到內容仍是會高亮。
爲了方便執行,能夠在 ~/.vimrc
文件中,把這個命令映射成快捷鍵。下面把它映射爲 F9 鍵:
" 若是要去掉高亮顯示搜索到的內容,須要再次搜索一些不存在的字符串,比較麻煩.能夠 " 在vim的命令行中執行nohlsearch命令去掉當前高亮.下面以:開頭表示在命令行執行. nnoremap <F9> :nohlsearch<CR> " 插入模式下也用F9來去掉搜索高亮.下面的<C-o>表示CTRL-O,在插入模式執行一次命令 inoremap <F9> <C-o>:nohlsearch<CR>