中山市西區(qū)網(wǎng)站制作競(jìng)價(jià)網(wǎng)
個(gè)人主頁(yè) : 個(gè)人主頁(yè)
個(gè)人專欄 : 《數(shù)據(jù)結(jié)構(gòu)》 《C語(yǔ)言》《C++》《Linux》
文章目錄
- 前言
- 一、vim的基本概念
- 二、vim的基本操作
- 三、vim正常模式命令集
- 四、vim底行模式命令集
- 五、.xxx.swp的解決
- 總結(jié)
前言
本文是對(duì)Linux中vim使用的總結(jié)
一、vim的基本概念
vim是一款多模式的文本編輯器,vim里有許多子命令,來(lái)進(jìn)行代碼編寫(xiě)的操作。本文將總結(jié)vim的三種常用模式,分別是命令模式(command mode),插入模式(insert mode),底行模式(last line mode),其中默認(rèn)打開(kāi)命令模式
- 命令模式
控制屏幕光標(biāo)的移動(dòng),字符,字或行的刪除,移動(dòng)復(fù)制某區(qū)段及進(jìn)入插入模式,或者到底行模式
輸入 vim 文件名 指令后進(jìn)入的界面就是命令模式 - 插入模式
只有在插入模式下,才可以做文字輸入,按[ESC]鍵可以回到命令模式。
在命令模式下輸入:i,a,o都可以進(jìn)入命令模式 - 底行模式
文件保存或退出,也可以進(jìn)行文件替換,找字符串(/ 字符串),列出行號(hào)(set nu)等操作。在命令模式下,shift + ; 進(jìn)入底行模式。在底行模式下,可以查看vim的所有模式( help vim-modes)
按h,j,k,l進(jìn)行左,下,上,右移動(dòng)光標(biāo)。輸入shift ; q退出
二、vim的基本操作
- 進(jìn)入vim,在系統(tǒng)提示符號(hào)輸入vim及文件名稱后,就可以進(jìn)入vim全屏膜編輯模式
要注意,在命令行模式下,不能輸入文字。要在插入模式才能輸入文字 - 命令行模式 到 插入模式
輸入 i,a,o都可以
但輸入i,光標(biāo)不移動(dòng)。輸入a,光標(biāo)向右移動(dòng)一字符。輸入o,光標(biāo)向下移動(dòng)一行。
現(xiàn)在我們處于命令行模式,光標(biāo)位于第三個(gè)a處。
輸入 i :
輸入:o
輸入:a
- 插入模式 切換至 命令行模式
目前處于插入模式,就只能一直輸入文字,如果發(fā)現(xiàn)輸入錯(cuò)誤,想用光標(biāo)往回移動(dòng),將該字符刪除,可以先輸入 ESC轉(zhuǎn)到命令行模式在刪除文字。當(dāng)然也可以直接刪除
- 命令行模式 轉(zhuǎn)到 底行模式
輸入shift ;
三、vim正常模式命令集
- 插入模式
輸入 i 切換進(jìn)入插入模式,按 " i "進(jìn)入插入模式后從光標(biāo)當(dāng)前位置開(kāi)始輸入文件
輸入 a 進(jìn)入插入模式,從目前光標(biāo)所在位置的下一個(gè)位置開(kāi)始插入文字
輸入 o 進(jìn)入插入模式,插入新的一行,從行首開(kāi)始輸入文字
- 移動(dòng)光標(biāo)
vim可以直接用鍵盤(pán)上的光標(biāo)來(lái)上下移動(dòng),但正規(guī)的vim是用小寫(xiě)字母 h,j,k,l分別控制光標(biāo)左,下,上,右移動(dòng)一格
輸入 shifr g(G):移動(dòng)到文件的最后
輸入 $:移動(dòng)到光標(biāo)所在行的行尾
輸入 ^:移動(dòng)光標(biāo)到所在行的行首。 ^ 和 $ 表示一行的開(kāi)始與結(jié)尾,被稱為錨點(diǎn)符號(hào)
輸入 w:光標(biāo)調(diào)到下一個(gè)字的開(kāi)頭
輸入 e:光標(biāo)調(diào)到下一個(gè)字的字尾
輸入 b:光標(biāo)回到上個(gè)字的開(kāi)頭
輸入 #|:光標(biāo)移到該行的第#個(gè)位置
輸入 gg:進(jìn)入文本開(kāi)始
輸入 shift + g :進(jìn)入文本末端
輸入 ctrl + b :屏幕向后移動(dòng)一頁(yè)
輸入 ctrl + f:屏幕向前移動(dòng)一頁(yè)
輸入 ctrl + u:屏幕向后移動(dòng)半頁(yè)
輸入 ctrl + d:屏幕向前移動(dòng)半頁(yè)
- 刪除文字
x:每按一次,刪除光標(biāo)所在位置的一個(gè)字符
#x:表示刪除光標(biāo)所在位置的后面(包含自己在內(nèi))#個(gè)字符
X(大寫(xiě)):每按一次,刪除光標(biāo)所在位置前一個(gè)字符
dd:刪除光標(biāo)所在行
#dd:從光標(biāo)所在行開(kāi)始刪除#行
- 復(fù)制
yy:復(fù)制光標(biāo)所在行到緩沖區(qū)
#yy:復(fù)制包含光標(biāo)所在行后#行到緩沖區(qū)
p:將緩沖區(qū)的字符貼到光標(biāo)所在的位置。注意:所有與y有關(guān)的復(fù)制命令都必須與p配合才能完成復(fù)制與粘貼功能。
注意dd可以與p配合使用,當(dāng)只使用dd,就是刪除。但是在dd后再使用p就是剪切。
- 替換
r :替換光標(biāo)所在處的字符
R:替換光標(biāo)所到之處的字符,直到按ESC為止 (也就是 shift + r 進(jìn)入替換模式)
shift ~:智能大小寫(xiě)轉(zhuǎn)換
- 撤銷上一次操作
u :如果你誤操作一個(gè)命令,可以按u,回到上一個(gè)操作。按多次u可以執(zhí)行多次回復(fù)
ctrl + r:對(duì)撤銷的回復(fù)
- 更該
cw:更改光標(biāo)所在處的字到字尾處
c#w:更改光標(biāo)所在的字(包含光標(biāo)所在的字)后#個(gè)字
- 跳至指定的行
- ctrl + g:列出光標(biāo)所在的行號(hào)
- #G:光標(biāo)移動(dòng)至文件的第#行行首
- 批量化注釋
ctrl + v -> j / k兩個(gè)按鍵上下選中區(qū)域 -> shift + i -> // -> ESC
四、vim底行模式命令集
- 列出行號(hào)
set nu:輸入set nu后,會(huì)在文件中的每一行前面列出行號(hào)
set nonu:取消行號(hào)
- 跳到文件中的某一行
#:#表示一個(gè)數(shù)字,在冒號(hào)后輸入一個(gè)數(shù)字,在按回車鍵就會(huì)跳到該行
- 查找字符
/關(guān)鍵字:先按/,再輸入你想尋找的字符,如果第一次的關(guān)鍵字不是你想要的,可以一直按 n 會(huì)往后尋找到你要的關(guān)鍵詞
?關(guān)鍵字:先按?,再輸入你想尋找的關(guān)鍵字,如果第一次的關(guān)鍵字不是你想要的,可以一直按 n 會(huì)往后尋找到你要的關(guān)鍵字
- 保存文件
w:在冒號(hào)后輸入字母w,就可以保存文件
- 退出vim
q:按q就是退出,如果無(wú)法離開(kāi)vim,可以輸入 q!強(qiáng)制退出vim
wq:一般建議離開(kāi)時(shí),搭配w一起使用,這樣在退出的時(shí)候還可以保存文件
五、.xxx.swp的解決
在打開(kāi)文件時(shí),如果直接退出shell,會(huì)產(chǎn)生一個(gè)隱藏備份文件.xxx(文件名).swp。此時(shí)我們?cè)诖蜷_(kāi)xxx文件就無(wú)法打開(kāi),這時(shí)我們可以直接rm掉.xxx.swp文件
如下:我們vim test.txt文件再輸入一些內(nèi)容,之后直接退出shell就會(huì)查收.test.txt.swp文件
此時(shí)我們不能vim test.txt打開(kāi)文件,會(huì)有如下提示
我們只有rm .test.txt.swp文件后才可以正常打開(kāi)文件
總結(jié)
以上就是我對(duì)于Linux中vim使用的總結(jié)。感謝支持!!!