命令
功能
備註
*向下搜尋游標所在處的詞
#向上搜尋游標所在處的詞
同上[++i
跳轉到游標所在處的變數的宣告
使用tag
[++d
跳轉到游標所在處的巨集的定義
使用tag
ycm定位命令
跳轉到游標所在處的變數的宣告或定義
youcompleteme外掛程式的功能,可以使用以下3個命令,
不過一般是用快捷鍵:
:ycmcompleter gotodeclaration
:ycmcompleter gotodefinition
:ycmcompleter gotodefinitionelsedeclaration
/向下搜尋模式
不僅是簡單的字串,還可以是複雜的正規表示式
?向上搜尋模式
同上/\c
?\c不區分大小寫地搜尋
小寫字母c
/\c/\c
區分大小寫地的搜尋
大寫字母c
:set ic
:set ignorecase
設定為不區分大小寫的搜尋模式
:set noic
:set noignorecase
設定為區分大小寫的搜尋模式
預設為區分大小寫
:vimgrep
在檔案中搜尋模式
比如在當前目錄所有.cpp檔案中搜尋abc:
:vimgrep abc *.cpp
如果想搜尋子目錄,是這樣
:vimgrep abc **/*.cpp
出來的結果在quickfix視窗,用命令:cw撥出
命令
功能
備註
s//[/]
把scope指定的範圍內匹配pattern的所有字串
替換為str,option為可選引數
帶option時,前面要加/
舉例:%s/abc/xyz/gc
將當前檔案中所有abc替換為xyz,並在替換前進行確認
:args
:argdo s//[/]
在檔案中把scope指定的範圍內匹配pattern
的所有字串替換為str,option為可選引數
各引數說明同上。舉例
:args *.txt *.cpp
:argdo %s/hate/love/gc | update
將當前目錄下所有txt和cpp檔案中的hate替換為love,
每次替換前確認;update命令會在檔案有改變時進行
儲存。注意:檔案中替換操作不可恢復,請仔細操作,做好備份
vim很多操作都帶範圍引數,替換命令也不例外。上述命令中的%代表範圍為所有行,另外還有m, n意思是從第m行到第n行。
先複製,到命令列後,+r+" ("是+』按出來的).
場景:想到替換命令:
:%s/\n/;\n/g
結果總是出錯。
後來找到解決方案:
:%s/\n/;\r/g
有人總結的結論:
when searching: \n is newline, \r is cr (carriage return = ctrl-m = ^m)
when replacing: \r is newline, \n is a null byte (0×00).
意思是:
字串查詢時,」\n」 是換行,」\r」 是回車,也就是經常會看到的 ^m(備註-1)。
字串替換時,」\r」 是換行,』\n」 是空字元(0×00)。
更多細節可以參考
一些在windows上編輯的檔案拷貝到linux上時行尾可能會出現^m,有時希望替換掉,命令如下
:%s/+v +m//g
就是 control 鍵+v,然後再 control 鍵 + m,就變成了 ^m,然後替換為空就可以了。
vim搜尋和替換
進入可視模式 pattern 從游標開始處向檔案尾搜尋pattern pattern 從游標開始處向檔案首搜尋pattern n 在同一方向重複上一次搜尋命令 n 在反方向上重複上一次搜尋命令 s p1 p2 g 將當前行中所有p1均用p2替代 n1,n2s p1 p2 g 將第n1至n2行中所有p...
VIM中的搜尋和替換
vim是被譽為非常高效的文字編輯軟體。但是掌握並高效的使用是件有難度的事情。在vim中進行快速的查詢和替換是提高vim使用效率的重要方法。下面是我在閱讀vim使用者手冊時整理的一些資料 行內搜尋。f命令可以進行行內搜尋。輸入fx可以找到下乙個x字元。f命令可以在反方向進行行內搜尋,輸入fx可以找到上...
Vim高階技術 搜尋和替換
搜尋,分為二個部分 乙個是搜尋命令,另乙個是模式匹配 搜尋命令就是各個編輯器所支援的啟動搜尋的方式,比如windows的各種編輯器都是以對話方塊的形式。模式就是在對話方塊中輸入的要匹配的字串集。本身字串的匹配功能有限,所以就有了專門用於模式匹配的正規表示式,它描述了模式匹配的一些規則,使用這些規則可...