本文的目標是提供一些vim的使用技巧,利用這些技巧可以提高vim的操作效率。部分技巧在vi上也可以使用,但是現在基本上都是用vim了。
1. 選定文字 / 拷貝粘貼
v為可視模式,可以選定多行。選定多行之後,可以用yy或者dd等等進行拷貝和剪切。
p 是粘貼
y 和d 可以直接拷貝或者剪切選定的內容
yw是拷貝一個單詞
如果要複製整行的最簡單辦法就是V,y,p 就行了
v是可以選定一行任意個字符的,V是行選定的,一次一整行,然後通過向下或向上移動光標而選定多行。
對於v選定的,拷貝後就是這麼多,選多少就拷貝多少,而V選定的,粘貼的話會自動換到下一行
命令模式下,也是塊選定,不過是列塊選定
2. 摺疊代碼
可以zf進行摺疊, 用zo打開摺疊,也可以方向鍵向右打開摺疊,zc 關閉摺疊(只要在被摺疊的塊中的任一個語句就行)
3. 縮進代碼
是右縮進
按v選定後按=就是自動格式化代碼,自動縮進,內部的遞歸的縮進都做到了
行左移>,該命令用於調整源碼縮進格式簡便快速。
4. 移動光標
%是從大括號的開始移動到大括號的結束位置
:後邊加行號就是跳到這一行
光標返回到以前的位置。相當於光標移動的“撤銷”
光標返回到後來的位置。相當於光標移動的“恢復”
5. 查找命令
用/查找單詞後,n可以跳到下一個,N則是上一個,:nohls可以取消高亮
查找時,:set ignorecase”項讓VIM忽略大小寫,“:set noignorecase” 來關閉這項功能。
6.函數間跳轉
ctrl+]和ctrl+T分別是查找函數的定義和返回,好像需要ctag的支持
7.快速移動光標
在 vi 中, 移動光標和編輯是兩件事, 正因為區分開來, 所以可以很方便的進行光標定
位和編輯. 因此能更快一點移動光標是很有用的.
w(e) 移動光標到下一個單詞.
b 移動光標到上一個單詞.
0 移動光標到本行最開頭.
^ 移動光標到本行最開頭的字符處.
$ 移動光標到本行結尾處.
H 移動光標到屏幕的首行.
M 移動光標到屏幕的中間一行.
L 移動光標到屏幕的尾行.
gg 移動光標到文檔首行.
G 移動光標到文檔尾行.
c-f (即 ctrl 鍵與 f 鍵一同按下) 本命令即 page down.
c-b (即 ctrl 鍵與 b 鍵一同按下, 後同) 本命令即 page up.
'' 此命令相當有用, 它移動光標到上一個標記處, 比如用 gd, * 等查
'. 此命令相當好使, 它移動光標到上一次的修改行.
`. 此命令相當強大, 它移動光標到上一次的修改點.
8.替換
替換是 vi 的強項, 因為可以用正規表達式來匹配字符串.以下提供幾個例子.
:s/aa/bb/g 將光標所在行出現的所有包含 aa 的字符串中的 aa 替換為 bb
:s/\/bb/g 將光標所在行出現的所有 aa 替換為 bb, 僅替換 aa 這個單詞
:%s/aa/bb/g 將文檔中出現的所有包含 aa 的字符串中的 aa 替換為 bb
:12,23s/aa/bb/g 將從12行到23行中出現的所有包含 aa 的字符串中的 aa 替換為 bb
:12,23s/^/#/ 將從12行到23行的行首加入 # 字符
:%s= *$== 將所有行尾多餘的空格刪除
:g/^\s*$/d 將所有不包含字符(空格也不包含)的空行刪除.
喜歡的點個關注。謝謝了
你的關注就是我的動力。