:w 將緩衝區寫入檔案,即儲存修改
:wq 儲存修改並退出
:x 儲存修改並退出
:q 退出,如果對緩衝區進行過修改,則會提示
:q! 強制退出,放棄修改
尋找替換
/pattern 向後搜尋字串pattern
?pattern 向前搜尋字串pattern
n 下一個匹配(如果是/搜尋,則是向下的下一個,?搜尋則是向上的下一個)
N 上一個匹配(同上)
:%s/old/new/g 搜尋整個檔案,將所有的old替換為new
:%s/old/new/gc 搜尋整個檔案,將所有的old替換為new,每次都要你確認是否替換
複製粘貼
dd 刪除游標所在行
dw 刪除一個字(word)
x 刪除當前字元
X 刪除前一個字元
D 刪除到行末
yy 複製一行,此命令前可跟數字,標識複製多行,如6yy,表示從當前行開始複製6行
yw 複製一個字
y$ 複製到行末
p 粘貼粘貼板的內容到當前行的下面
P 粘貼粘貼板的內容到當前行的上面
]p 有縮排的粘貼,vim會自動調節代碼的縮排
"a 將內容放入/存入a寄存器,可以支援多粘貼板
附:比如常用的一個寄存器就是系統寄存器,名稱為+,所以從系統粘貼板粘貼到vim中的命令為"+p,注意此處的+不表示操作符,二十一個寄存器。
移動游標
在vim中移動游標跟其他的編輯器中有很大的區別,不過一旦學會了,就會飛速的在文本中移動了。
h,j,k,l 左,下,上,右
ctrl-f 上翻一頁
ctrl-b 下翻一頁
% 跳到與當前括弧匹配的括弧處,如當前在{,則跳轉到與之匹配的}處
w 跳到下一個字首,按標點或單詞分割
W 跳到下一個字首,長跳,如end-of-line被認為是一個字
e 跳到下一個字尾
E 跳到下一個字尾,長跳
b 跳到上一個字
B 跳到上一個字,長跳
0 跳至行首,不管有無縮排,就是跳到第0個字元
^ 跳至行首的第一個字元
$ 跳至行尾
gg 跳至檔案的第一行
gd 跳至當前游標所在的變數的聲明處
[N]G 跳到第N行,如0G,就等價於gg,100G就是第100行
fx 在當前行中找x字元,找到了就跳轉至
; 重複上一個f命令,而不用重複的輸入fx
tx 與fx類似,但是只是跳轉到x的前一個字元處
Fx 跟fx的方向相反
),( 跳轉到上/下一個語句
* 尋找游標所在處的單詞,向下尋找
# 尋找游標所在處的單詞,向上尋找
`. 跳轉至上次編輯位置
在螢幕上移動
H 移動游標到當前螢幕上最上邊的一行
M 移動游標到當前螢幕上中間的一行
L 移動游標到當前螢幕上最下邊的一行
書籤
ma 把當前位置存成標籤a
`a 跳轉到標籤a處
編輯
r 替換一個字元
J 將下一行和當前行串連為一行
cc 刪除當前行並進入編輯模式
cw 刪除當前字,並進入編輯模式
c$ 擦除從當前位置至行末的內容,並進入編輯模式
s 刪除當前字元並進入編輯模式
S 刪除游標所在行並進入編輯模式
xp 交換當前字元和下一個字元
u 撤銷
ctrl+r 重做
. 重複上一個編輯命令
~ 切換大小寫,當前字元
g~iw 切換當前字的大小寫
gUiw 將當前字變成大寫
guiw 將當前字變成小寫
>> 將當前行右移一個單位
<< 將當前行左移一個單位(一個tab符)