一、vim的基本概念
? ? vim是文件編輯器,是vi的升級(jí)版本,兼容vi的所有指令,同時(shí)做了優(yōu)化和延伸。vim有多種模式,其中最常用的模式有命令模式、插入模式、底行模式以及替換模式和視圖模式。(視圖模式本文暫不提及)
二、vim的安裝
? ?在使用vim編輯器進(jìn)行文件的編輯之前,需要確保自己的系統(tǒng)已經(jīng)安裝了vim編輯器??芍苯虞斎朊顅im,如果顯示如下的界面,則證明你的系統(tǒng)已經(jīng)安裝了vim,可以用vim進(jìn)行操作。
如果還未安裝,可通過(guò)輸入命令yum install -y vim來(lái)安裝vim即可。?
三、vim的常用模式
1.命令模式
? ?命令模式是通過(guò)vim指令進(jìn)入操作的默認(rèn)模式,可以切換成其他模式,另外的模式進(jìn)行切換也需要命令模式作為中間模式。
vim的指令操作一般是在命令模式下使用的,常見(jiàn)的指令如下。(用“+”連接的部分說(shuō)明要同時(shí)按鍵)
1.復(fù)制、粘貼、剪切和刪除功能相關(guān)的指令
yy/nyy? ? ? ? ? ? ? ? 復(fù)制光標(biāo)所在行的內(nèi)容,n是數(shù)字,表示從光標(biāo)處開始復(fù)制n行內(nèi)容
p/np? ? ? ? ? ? ?? ? ? 粘貼剪切板中的內(nèi)容,n是數(shù)字,表示從光標(biāo)處開始粘貼n份相同的內(nèi)容
dd/ndd? ? ? ? ? ? ? ?剪切光標(biāo)所在行的內(nèi)容,n是數(shù)字,表示從光標(biāo)處開始剪切n行內(nèi)容;如果后續(xù)沒(méi)有粘貼的操作,則該操作等同于刪除
n x? ? ? ? ? ? ? ? ? ? ?行內(nèi)刪除,從當(dāng)前光標(biāo)位置起向右刪除n個(gè)字符的內(nèi)容(包括當(dāng)前光標(biāo)所指的字符)
n X? ? ? ? ? ? ? ? ? ? ?行內(nèi)刪除,從當(dāng)前光標(biāo)位置起向左刪除n個(gè)字符的內(nèi)容(不包括當(dāng)前光標(biāo)所指的字符)
2.撤銷操作相關(guān)的指令
u? ? ? ? ? ? ? ? ? ? ? ? ?撤銷上次的操作
ctrl + r? ? ? ? ? ? ? ? 撤銷撤銷操作的操作(即撤銷通過(guò)u指令撤銷的操作,可以理解為復(fù)原操作,如果在輸入該指令前未進(jìn)行撤銷操作,則該指令會(huì)報(bào)錯(cuò))
3.挪動(dòng)光標(biāo)相關(guān)的指令
shift + g (即G)?? ? ? ? ? ? ? ? ? ? ?將光標(biāo)定位到文檔內(nèi)容的最后一行開頭
gg? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?將光標(biāo)定位到文檔內(nèi)容的開頭
n? shift + g(即 n G)? ? ? ? ? ? 將光標(biāo)定位到文檔內(nèi)容的第n行開頭
shift + 4(即$)? ? ? ? ? ? ? ? ? ?將光標(biāo)定位到當(dāng)前所在行的行尾
shift + 6(即^)? ? ? ? ? ? ? ? ? ? ?將光標(biāo)定位到當(dāng)前所在行的行首
n w? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 以單詞為單位,光標(biāo)向后挪動(dòng)一個(gè)單位(范圍是整個(gè)文件,即可以跨行挪動(dòng)光標(biāo))
n b? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?以單詞為單位,光標(biāo)向前挪動(dòng)一個(gè)單位(范圍是整個(gè)文件,即可以跨行挪動(dòng)光標(biāo))
4.字符切換相關(guān)的指令
shift + ~? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 快速進(jìn)行大小寫的切換(當(dāng)前光標(biāo)處)
n r + 替換后的字符? ? ? ? ? ? ? ? ?替換當(dāng)然光標(biāo)所指向的內(nèi)容
5.光標(biāo)進(jìn)行上下左右移位的按鍵
h? ? ? ? ? ?向左
j? ? ? ? ? ? 向下
k? ? ? ? ? ?向上
l? ? ? ? ? ? 向右
(可以根據(jù)這四個(gè)字母按鍵在鍵盤上的相對(duì)位置和聯(lián)想記憶來(lái)進(jìn)行方向的記憶:h和l分別在最左邊和最右邊,所以是向左和向右挪動(dòng)光標(biāo);j聯(lián)系英文單詞jump,即“跳”,可以聯(lián)想成光標(biāo)向下“跳”,即向下挪動(dòng);k聯(lián)系英文單詞king,即“王”,王地位最高,可以聯(lián)想成光標(biāo)向上挪動(dòng)。
2.插入模式
插入模式,是可以直接將鍵盤輸入的內(nèi)容插入到文件的模式。
插入模式可在命令模式下通過(guò)按鍵i/a/o等切換而來(lái),該模式下用戶可進(jìn)行內(nèi)容的插入,期間屏幕的左下角會(huì)有INSERT字樣的提示。退出該模式通過(guò)按鍵Esc完成,退出后為命令模式。插入模式不可直接跳過(guò)命令模式轉(zhuǎn)換為其他模式。
即
?i? ? ? ? ? ? ? ?光標(biāo)不會(huì)移動(dòng)
a? ? ? ? ? ? ? ?光標(biāo)向后移動(dòng)一個(gè)字符的位置,按Esc退出該模式后光標(biāo)會(huì)向前挪一個(gè)字符的位置。
o? ? ? ? ? ? ? ?會(huì)伴隨有新起一行的操作,按Esc退出該模式后換行的操作仍不會(huì)撤銷。
3.底行模式
底行模式,顧名思義,是在屏幕的最底行進(jìn)行命令輸入的模式。
底行模式可以在命令模式下通過(guò)shift + :切換得到。如果當(dāng)前是除命令模式外的其他模式,可先按鍵Esc,再按鍵shift + : 進(jìn)入底行模式。
退出vim編輯器是從底行模式進(jìn)行退出,輸入wq可以保存編輯的內(nèi)容并推出vim編輯器。
底行模式下,常見(jiàn)的指令操作:
1.set nu? /? set? nonu? ? ? ? ? ? 調(diào)出或去掉行號(hào)的指令
2./字符串? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?搜索字符串
3.!command? ? ? ? ? ? ? ? ? ? ? ?執(zhí)行命令command(command是在命令行可以輸入的命令)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?該操作與在命令行進(jìn)行操作的效果是一樣的,顯示結(jié)果時(shí)會(huì)切? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?到命令行顯示,按鍵回車后會(huì)返回vim編輯器(底行模式)
4.w? ? ? ? ? ? ? ? ? ? ?寫入,即保存編輯的內(nèi)容;
? ?q? ? ? ? ? ? ? ? ? ? ? 退出vim
5.%s/A字符串/B字符串/g? ? ? ? 將文件內(nèi)容中所有的A字符串用B字符串替換,%s是字符串的? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 格式符,g表示全部
6.vs 文件名? ? ? ? ? ? ? ? ? ? ? ? ? ? ?分屏操作另一個(gè)文件,文件本不存在時(shí)會(huì)直接創(chuàng)建一個(gè)新文? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 件;編輯文件時(shí),光標(biāo)在哪個(gè)文件,當(dāng)前編輯的就是哪個(gè)文? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 件;
? ctrl + ww? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 在分屏編輯文件時(shí),讓光標(biāo)在不同文件間進(jìn)行切換。(命令模? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?式下進(jìn)行該操作)
4.替換模式
替換模式,即進(jìn)行文本內(nèi)容替換的模式。
替換模式可以在命令模式下通過(guò)shift + r切換得到。如果當(dāng)前是除命令模式外的其他模式,可先按鍵Esc,再按鍵shift + r 進(jìn)入替換模式。替換模式下,屏幕的左下角會(huì)有REPLACE的字樣提示。
即
在替換模式下,鍵盤輸入的內(nèi)容會(huì)直接替代光標(biāo)處的內(nèi)容,如果光標(biāo)處為空,則鍵盤輸入的內(nèi)容與插入模式下輸入內(nèi)容效果相同。
四、總結(jié)
? ? vim編輯器不同于windows下的vs2019等編譯器,vim僅僅只有編輯的功能,至于Linux下如何進(jìn)行代碼的編譯和調(diào)試,則是由gcc/g++和gdb來(lái)完成。之后的博客會(huì)有詳細(xì)介紹。(gcc和g++是C和C++的編譯器)
? ? 使用vim時(shí)要熟悉各個(gè)模式下的切換方法和常見(jiàn)操作,要多操作才能更加熟練。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-735080.html
? ? 本文是自己對(duì)使用vim的一些總結(jié),希望能幫到大家,也希望大家能愿意指出我的不足或錯(cuò)誤,讓我有機(jī)會(huì)及時(shí)糾正。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-735080.html
到了這里,關(guān)于【Linux】編輯器vim詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!