本篇是對(duì)常用vim操作的自我總結(jié),大神請(qǐng)回避,適合小白觀看。
vim 打開退出保存
打開:
直接打開 vim practice_1.txt
也可以先打開vim,后:e 文件路徑
保存:
:w 文件名
或者退出保存:wq!
普通模式下退出vim:Shift+zz
vim 移動(dòng)和進(jìn)入插入模式
移動(dòng):
w下一個(gè)單詞
b上一個(gè)單詞
進(jìn)入插入模式
命令 說明
i 在當(dāng)前光標(biāo)處進(jìn)行編輯
I 在行首插入
A 在行末插入
a 在光標(biāo)后插入編輯
o 在當(dāng)前行后插入一個(gè)新行
O 在當(dāng)前行前插入一個(gè)新行
cw 替換從光標(biāo)所在位置后到一個(gè)單詞結(jié)尾的字符
?
vim 選擇模式
v(小寫),進(jìn)入字符選擇模式
Shift+v(小寫),進(jìn)入行選擇模式
Ctrl+v(小寫),這是區(qū)域選擇模式,可以進(jìn)行矩形區(qū)域選擇,
在可視模式下輸入d刪除選取區(qū)域內(nèi)容
在可視模式下輸入y復(fù)制選取區(qū)域內(nèi)容
?
vim行間跳轉(zhuǎn)和行內(nèi)跳轉(zhuǎn)
nG 跳到第n行
gg 第一行
G最后一行
ctrol + o 跳到上一次跳轉(zhuǎn)時(shí)的位置,可以重復(fù)類似history
命令 說明
w 到下一個(gè)單詞的開頭
e 到下一個(gè)單詞的結(jié)尾
b 到前一個(gè)單詞的開頭
ge 到前一個(gè)單詞的結(jié)尾
0或^ 到行頭
$ 到行尾
f 向后搜索并跳轉(zhuǎn)到第一個(gè)匹配的位置(非常實(shí)用)
F 向前搜索并跳轉(zhuǎn)到第一個(gè)匹配的位置
t 向后搜索并跳轉(zhuǎn)到第一個(gè)匹配位置之前的一個(gè)字母(不常用)
T 向前搜索并跳轉(zhuǎn)到第一個(gè)匹配位置之后的一個(gè)字母(不常用)
?
vim復(fù)制粘貼
y復(fù)制
普通模式中,yy復(fù)制游標(biāo)所在的整行(3yy表示復(fù)制3行)
普通模式中,y^ 復(fù)制至行首,或y0。不含光標(biāo)所在處字符。
普通模式中,y$ 復(fù)制至行尾。含光標(biāo)所在處字符。
普通模式中,yw 復(fù)制一個(gè)單詞。
普通模式中,y2w 復(fù)制兩個(gè)單詞。
普通模式中,yG 復(fù)制至文本末。
普通模式中,y1G 復(fù)制至文本開頭。
p粘貼
普通模式中,p(小寫)代表粘貼至光標(biāo)后(下)
普通模式中,P(大寫)代表粘貼至光標(biāo)前(上)
d剪切
?
vim刪除快捷鍵
命令 說明
x 刪除游標(biāo)所在的字符
X 刪除游標(biāo)所在前一個(gè)字符
Delete 同x
dd 刪除整行
dw 刪除一個(gè)單詞(不適用中文)
d$或D 刪除至行尾
d^ 刪除至行首
dG 刪除到文檔結(jié)尾處
d1G 刪至文檔首部
命令之前加數(shù)字表示重復(fù)操作
2dd
?
vim 多文件編輯
vim 1.txt 2.txt
進(jìn)入vim后打開新文件
命令行模式下輸入:e 3.txt 打開新文件3.txt
命令行模式下輸入:e# 回到前一個(gè)文件
命令行模式下輸入:ls可以列出以前編輯過的文檔
命令行模式下輸入:b 2.txt(或者編號(hào))可以直接進(jìn)入文件2.txt編輯
命令行模式下輸入:bd 2.txt(或者編號(hào))可以刪除以前編輯過的列表中的文件項(xiàng)目
命令行模式下輸入:e! 4.txt,新打開文件4.txt,放棄正在編輯的文件
命令行模式下輸入:f 顯示正在編輯的文件名
命令行模式下輸入:f new.txt,改變正在編輯的文件名字為new.txt
如果因?yàn)閿嚯姷仍蛟斐晌臋n沒有保存,可以采用恢復(fù)方式,vim -r進(jìn)入文檔后,輸入:ewcover 1.txt來恢復(fù)
$ vim -r 1.txt
?
vim顯示行號(hào)
:set nu
?
vim替換
r+ 將游標(biāo)所在字母替換為指定字母
R 連續(xù)替換,直到按下Esc
cc 替換整行,即刪除游標(biāo)所在行,并進(jìn)入插入模式
cw 替換一個(gè)單詞,即刪除一個(gè)單詞,并進(jìn)入插入模式
C(大寫) 替換游標(biāo)以后至行末
~ 反轉(zhuǎn)游標(biāo)所在字母大小寫
u{n} 撤銷一次或n次操作
U(大寫) 撤銷當(dāng)前行的所有修改
Ctrl+r redo,即撤銷undo的操作
?
vim 查找
/icmp 向后查找icmp
? tcp 向前查找tcp
n下一個(gè)
N移動(dòng)到上一個(gè)
?
Vim重復(fù)命令
.
也可以輸入數(shù)字在命令前
?
vim 內(nèi)部執(zhí)行外部命令
輸入!
:!ls 用于顯示當(dāng)前目錄的內(nèi)容
:!rm FILENAME用于刪除名為 FILENAME 的文件
:w FILENAME可將當(dāng)前 VIM 中正在編輯的文件另存為 FILENAME 文件
?
vim 文本對(duì)齊
:ce
:ri
:le
?
vim 文檔加密
vim -x file1
?
vim縮進(jìn)
>>
查看設(shè)置:
set shiftwidth?
設(shè)置值:
set shiftwidth=10
?
vim設(shè)置
2.7.1 vim的功能設(shè)定
vim的配置文件~/.vimrc(實(shí)驗(yàn)樓環(huán)境中配置文件在/etc/vim/vimrc),可以打開文件進(jìn)行修改,不過務(wù)必小心不要影響vim正常使用
2.7.2 獲取目前的設(shè)定
命令行模式下輸入:set或者:se顯示所有修改過的配置
命令行模式下輸入:set all 顯示所有的設(shè)定值
命令行模式下輸入:set option? 顯示option的設(shè)定值
命令行模式下輸入:set nooption 取消當(dāng)期設(shè)定值
2.7.3 set功能的說明
命令行模式下輸入:set autoindent(ai) 設(shè)置自動(dòng)縮進(jìn)
命令行模式下輸入:set autowrite(aw) 設(shè)置自動(dòng)存檔,默認(rèn)未打開
命令行模式下輸入:set background=dark或light,設(shè)置背景風(fēng)格
命令行模式下輸入:set backup(bk) 設(shè)置自動(dòng)備份,默認(rèn)未打開
命令行模式下輸入: set cindent(cin) 設(shè)置C語言風(fēng)格縮進(jìn)
?