vi / vim 命令集合
vim的命令太多了,不常用就會忘記,所以我決定把vim的各種命令整理下來,包括vim的插入刪除、光標移動、多窗口編輯、復制粘貼、查找替換、以及一些常用命令
刪除操作
dd 刪除當前行
ndd 刪除以當前行開始的n行(包括當前行)
dw 刪除到單詞尾
ndw 從光標處刪除到第三個單詞尾(不嚴格區分字段)
ndW 從光標處刪除到第三個單詞尾(嚴格區分字段)
也可以dnw或dnW
x 刪除光標處的一個字符
d0 刪除到行首
d^ 刪除到行首(保留行首的空格和Tab)
d$ 刪除到行尾
D 刪除到行尾(與d$命令相同)
d回車 刪除2行
Ctrl+u 刪除輸入方式下所輸入的文本。
D 刪除到行尾
dl 刪除當前字符(與x命令功能相同)
db 刪除到某個單詞的開始位置
dW 刪除到某個以空格作為分隔符的單詞的結尾位置
dB 刪除到某個以空格作為分隔符的單詞的開始位置
d7B 刪除到前面7個以空格作為分隔符的單詞的開始位置
d4) 刪除到第四個語句的結尾位置
d( 刪除到某個語句的開始位置
d) 刪除到某個語句的結尾位置
d{ 刪除到某個段落的開始位置
nd{ 刪除到當前段落起始位置之前的第n個段落位置
d/text 刪除從文本中出現“text”中所指定字樣的位置,一直向前直到下一個該字樣所出現的位置(但不包括該字樣)之間的內容
dfc 刪除從文本中出現字符“c”的位置,一直向前直到下一個該字符所出現的位置(包括該字符)之間的內容
dtc 刪除當前行直到下一個字符“c”所出現位置之間的內容
dL 刪除直到屏幕上最後一行的內容
dH 刪除直到屏幕上第一行的內容
dG 刪除直到工作緩存區結尾的內容
d1G 刪除直到工作緩存區開始的內容
c 刪除,然後進入INSERT MODE
cc 刪除當前行,然後進入INSERT MODE
移動光標
j 向下移動光標
k 向上移動光標
h 向左移動光標
l 向右移動光標
^ 移動到該行第一個非空格的字符處
w 向前移動一個單詞,將符號或標點當作單詞處理
W 向前移動一個單詞,不把符號或標點當作單詞處理
b 向後移動一個單詞,把符號或標點當作單詞處理
B 向後移動一個單詞,不把符號或標點當作單詞處理
( 光標移至句首
) 光標移至句尾
{ 光標移至段落開頭
} 光標移至段落結尾
H 光標移至屏幕頂行
M 光標移至屏幕中間行
L 光標移至屏幕最後行
0 到行首
$ 到行尾
gg 到頁首
G 到頁末
行號+G 跳轉到指定行
n+ 光標下移n行
n- 光標上移n行
fx 向右跳到本行字符x處(x可以是任何字符)
Fx 向左跳到本行字符x處(x可以是任何字符)
tx 和fx相同,區別是跳到字符x前 Tx 和Fx相同,區別是跳到字符x後
Ctrl-b 向上滾動一屏
Ctrl-f 向下滾動一屏
Ctrl-u 向上滾動半屏
Ctrl-d 向下滾動半屏
Ctrl-y 向上滾動一行
Ctrl-e 向下滾動一行
移動代碼
J 把下一行合並到當前行尾
選擇
V 選擇一行(繼續移動光標可以選擇多行)
Ctrl+v 進行矩形區域的選擇
進入和退出
vi filename 打開或新建文件,並將光標置於第一行首
vi +n filename 打開文件,並將光標置於第n行首
vi + filename 打開文件,並將光標置於最後一行首
vi +/pattern filename 打開文件,並將光標置於第一個與pattern匹配的串處
vi -r filename 在上次正用vi編輯時發生系統崩潰,恢復filename
vi filename ... filename 打開多個文件,依次進行編輯
ZZ 退出vi並保存
:q! 退出vi,不保存
:wq 退出vi並保存
插入
i 進入插入模式
o 在下一行插入新的一行
O 在上一行插入新的一行
a 在光標之後進入插入模式
A 在光標之前進入插入模式
查找及替換命令
r 替換一個字符
R 進入替換模式,直到Esc退出
/pattern 從光標開始處向文件尾搜索pattern
?pattern 從光標開始處向文件首搜索pattern
n 在同一方向重復上一次搜索命令
N 在反方向上重復上一次搜索命令
% 查找配對的括號
:s/p1/p2/g 將當前行中所有p1均用p2替代,若要每個替換都向用戶詢問則應該用gc選項
:n1,n2s/p1/p2/g 將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g 將文件中所有p1均用p2替換
:%s/p1/p2/g 將文件中所有p1用p2替換
rx 將當前光標下的字符更改為x(x為任意字符)
~ 更改當前光標下的字符的大小寫
.*[]^%~$ 在Vi中具有特殊含義,若需要查找則應該加上轉義字符"\"
撤回與恢復
u 撤銷命令
U 修正之前對該行的操作
Ctrl+r 恢復( u的反操作)
多窗口編輯
:split xxx 上下分窗口打開xxx文件
:vsplit xxx 左右分窗口打開xxx文件
Ctrl+ww 光標跳轉到下一個窗口
復制與粘貼
y 復制選中內容
p 粘貼
yy 復制當前整行
nyy 復制當前行開始的n行內容
“+y 復制到系統剪切版
”+P 從系統剪切版粘貼
“+yG 從光標處復制到文件尾,復制到系統剪切版
一些命令
. 重復上一個命令
:set hlsearch 設置高亮
:set nohlsearch 關閉高亮
:set nu! 打開行號
不定期更新、希望有所幫助....
vi / vim 命令集合