1.什么是vim?
vi 和 vim 是Linux下的一個(gè)文本編輯工具禽翼,(可以理解為windows的記事本或word文檔)
2.為什么要使用vim?
因?yàn)閘inux 系統(tǒng)一切皆為文件,而我們工作最多的就是修改某個(gè)服務(wù)的配置(其實(shí)就是文件內(nèi)容)懊渡。
也就是說如果沒有vi/vim膛薛,我們很多工作都無法完成听隐。
3.vi和vim有什么區(qū)別?
vi和vim都是文本編輯器哄啄,只不過vim是vi的增強(qiáng)版雅任,比vi多了語法高亮顯示,其他編輯功能幾乎一樣咨跌。
4.如何使用vim編輯器
小結(jié): vim編輯打開文件整體流程如下:
1.默認(rèn)打開文件處于普通模式
2.從普通模式切換至編輯模式需要使用a沪么、i、o A I O
3.編輯模式修改完畢后需要先使用ECS返回普通模式
4.在普通模式輸入":"或"/"進(jìn)入命令模式锌半,可實(shí)現(xiàn)文件的保存與退
出禽车。
PS: 在vim中,無法直接從編輯模式切換到命令模式
vim 普通模式
1.命令光標(biāo)跳轉(zhuǎn)
G 光標(biāo)跳轉(zhuǎn)至文件末端
gg 光標(biāo)跳轉(zhuǎn)至文件頂端
Ngg 光標(biāo)跳轉(zhuǎn)至當(dāng)前文件內(nèi)的N行
$ 光標(biāo)跳轉(zhuǎn)至當(dāng)前光標(biāo)所在行的尾部
^|0 光標(biāo)跳轉(zhuǎn)至當(dāng)前光標(biāo)所在行的首部
2.文件內(nèi)容較多
ctrl+f 往下翻頁(行比較多)
ctrl+b 往上翻頁
3.復(fù)制與粘貼 yy p
yy 復(fù)制當(dāng)前光標(biāo)所在的行
5yy 復(fù)制當(dāng)前光標(biāo)以及光標(biāo)向下4行
p(小寫) 粘貼至當(dāng)前光標(biāo)下一行
P(大寫) 粘貼至當(dāng)前光標(biāo)上一行
4.刪除刊殉、剪貼殉摔、撤銷
dd 刪除當(dāng)前光標(biāo)所在的行
4dd 刪除當(dāng)前光標(biāo)所在的行以及往下的3行
dG 刪除當(dāng)前光標(biāo)以后的所有行
D 刪除當(dāng)前光標(biāo)及光標(biāo)以后的內(nèi)容
x 刪除當(dāng)前光標(biāo)標(biāo)記往后的字符
刪行,刪除行中的一部分,刪除單個(gè)字符
u 撤銷上一次的操作
dd & p 剪貼、先刪除dd(number dd)冗澈,后粘貼p
5.替換
r 替換當(dāng)前光標(biāo)標(biāo)記的單個(gè)字符
vim 編輯模式
2.編輯模式(從普通模式進(jìn)入到編輯模式)*
i 進(jìn)入編輯模式钦勘,光標(biāo)不做任何操作
a 進(jìn)入編輯模式,將當(dāng)前光標(biāo)往后一位
o 進(jìn)入編輯模式亚亲,并在當(dāng)前光標(biāo)下添加一行空白內(nèi)容
I 進(jìn)入編輯模式彻采,并且光標(biāo)會(huì)跳轉(zhuǎn)至本行的頭部
A 進(jìn)入編輯模式腐缤,將光標(biāo)移動(dòng)至本行的尾部
O 進(jìn)入編輯模式,并在當(dāng)前光標(biāo)上添加一行空白內(nèi)容
vim 命令模式
3.命令模式肛响,主要用于搜索, 保存, 退出文件
i 進(jìn)入編輯模式岭粤,光標(biāo)不做任何操作
a 進(jìn)入編輯模式,將當(dāng)前光標(biāo)往后一位
o 進(jìn)入編輯模式特笋,并在當(dāng)前光標(biāo)下添加一行空白內(nèi)容
I 進(jìn)入編輯模式剃浇,并且光標(biāo)會(huì)跳轉(zhuǎn)至本行的頭部
A 進(jìn)入編輯模式,將光標(biāo)移動(dòng)至本行的尾部
O 進(jìn)入編輯模式猎物,并在當(dāng)前光標(biāo)上添加一行空白內(nèi)容
1.文件保存與退出
:w 保存當(dāng)前狀態(tài)
:q 退出當(dāng)前文檔(文檔必須保存才能退出)
:wq 先保存虎囚,在退出
:w! 強(qiáng)制保存當(dāng)前狀態(tài)
:q! 強(qiáng)制退出文檔不會(huì)修改當(dāng)前內(nèi)容
:wq! 強(qiáng)制保存并退出
:x 先保存,在退出
ZZ 保存退出, shfit+zz
:number 跳轉(zhuǎn)至對應(yīng)的行號
文件保存---->>> :wq 保存并退出 :wq! 強(qiáng)制保存并退出
2.文件內(nèi)容查找
/string 需要搜索的內(nèi)容(查找)
n 按搜索到的內(nèi)容依次往下進(jìn)行查找
N 按搜索到的內(nèi)容依次往上進(jìn)行查找
3.文件內(nèi)容替換
:1,5s#sbin#test#g 替換1-5行中包含sbin的內(nèi)容為test
:%s#sbin#test#g 替換整個(gè)文本文件中包含sbin的替換為test
4.文件內(nèi)容另存
:w /root/test.txt 將所有內(nèi)容另存為/root/test.txt文件中
vim視圖模式
4.視圖模式(從普通模式進(jìn)入視圖模式)蔫磨,主要進(jìn)行批量操作
ctrl+v 進(jìn)入可視塊模式淘讥,選中需要注釋的行
1.插入:按shift+i進(jìn)入編輯模式,輸入#,結(jié)束按ESC鍵
2.刪除:選中內(nèi)容后,按d鍵刪除
3.替換:選中需要替換的內(nèi)容, 按下r鍵,然后輸入替換后的內(nèi)容
shift+v 進(jìn)入可視行模式堤如,選中整行內(nèi)容
1.復(fù)制:選中行內(nèi)容后按y鍵及可復(fù)制蒲列。
2.刪除:選中行內(nèi)容后按d鍵刪除。
vim擴(kuò)展知識(shí)
1.環(huán)境變量臨時(shí)生效
:set nu 顯示行號
:set ic 忽略大小寫, 在搜索的時(shí)候有用
:set ai 自動(dòng)縮進(jìn)
:set list 顯示制表符(空行搀罢、tab鍵)
:set no[nu|ic|ai…] 取消臨時(shí)設(shè)定的變量
2.環(huán)境變量永久生效蝗岖。~/.vimrc 個(gè)人環(huán)境變量(優(yōu)先級高) /etc/vimrc 全局環(huán)境變量
vim ~/.vimrc 當(dāng)下次再打開文件自動(dòng)顯示行號并忽略大小寫
set nu
set ic
如果個(gè)人vim環(huán)境沒有配置, 則使用全局vim環(huán)境變量配置。
如果個(gè)人vim環(huán)境和全局環(huán)境變量產(chǎn)生沖突, 優(yōu)先使用個(gè)人vim環(huán)境變量榔至。
3.如何同時(shí)編輯多個(gè)文件
vim -o file1 file2 水平分割
vim -O file1 file2 垂直分割
ctrl+ww 文件間切換
4.相同文件之間差異對比抵赢,通常用于對比修改前后差異
diff 文件對比
vimdiff 以vim方式打開兩個(gè)文件對比,高亮顯示不同的內(nèi)容
5.如果VIM非正常退出 (ctrl+z)掛起或強(qiáng)制退出終端沒關(guān)閉VIM后
假設(shè)打開filename文件被以外關(guān)閉唧取,需要?jiǎng)h除同文件名的.swp文件即可
解決
rm -f .filename.swp