Day 7 vim 文件編輯與vim的使用

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多了語(yǔ)法高亮顯示,其他編輯功能幾乎一樣。

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   往下翻頁(yè)(行比較多)
ctrl+b   往上翻頁(yè)

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)至對(duì)應(yīng)的行號(hào)

文件保存---->>> :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       顯示行號(hào)
: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)先級(jí)高) /etc/vimrc 全局環(huán)境變量
vim ~/.vimrc               當(dāng)下次再打開文件自動(dòng)顯示行號(hào)并忽略大小寫
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.相同文件之間差異對(duì)比,通常用于對(duì)比修改前后差異
 diff     文件對(duì)比 
 vimdiff  以vim方式打開兩個(gè)文件對(duì)比,高亮顯示不同的內(nèi)容
5.如果VIM非正常退出 (ctrl+z)掛起或強(qiáng)制退出終端沒關(guān)閉VIM后
  假設(shè)打開filename文件被以外關(guān)閉,需要?jiǎng)h除同文件名的.swp文件即可
解決
 rm -f .filename.swp
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容