一、三種模式介紹
命令模式
插入模式(編輯模式)
末行模式
二、模式切換
1.命令模式切換到插入模式
(1) a //進(jìn)入到當(dāng)前光標(biāo)后開始編輯
(2) A //進(jìn)入到當(dāng)前光標(biāo)所在行的行末開始編輯
(3)i //進(jìn)入當(dāng)前光標(biāo)位置開始編輯
(4)I //進(jìn)入當(dāng)前光標(biāo)所在行的行頭開始編輯
(5) o //進(jìn)入當(dāng)前光標(biāo)下一行開始編輯
(6)O //進(jìn)入當(dāng)前光標(biāo)上一行開始編輯
2.命令模式切換到末行模式
(1): //對(duì)文本的設(shè)置或保存工作
(2) / //對(duì)文本進(jìn)行全文向下搜索字符串string
(3)? //對(duì)文本進(jìn)行全文向上搜索字符串string
3.vi/vim常用命令
(1) n dd //刪除光標(biāo)開始向下的n行
例如:現(xiàn)在用vi打開一個(gè)main.c文件,文件中有以下代碼,在命令模式下進(jìn)行操作:
①刪除多行
將光標(biāo)移到某一行,按下數(shù)字n,就可以刪除從這行開始往下的n行。
此時(shí),假如現(xiàn)在不想要4,5,6這3行,將光標(biāo)移到第4行,輸入:3dd,這3行代碼就被刪除了:
②刪除一行:
刪除一行代碼時(shí)不用輸入1,之間把光標(biāo)移到要?jiǎng)h除的那一行,然后按dd。
現(xiàn)在要?jiǎng)h除第四行,就直接把光標(biāo)移到第4 行,然后按dd就可以刪除這一行:
③這種刪除是一種剪切式的刪除:
可以將剛剛刪除的一行代碼粘貼到光標(biāo)所在的那一行。將光標(biāo)移到某一行,然后按p,剛剛刪除的代碼就會(huì)粘貼到這一行。
剛剛上面我們刪除了一個(gè)空行,現(xiàn)在把這個(gè)空行粘貼到第5行,把光標(biāo)移動(dòng)到第5行,然后按p,此時(shí)剛剛刪除的空行就粘貼到了第5行的下面,也就是第6行:
(2)n yy //拷貝光標(biāo)開始向下的n行
例如:有以下代碼:
①?gòu)?fù)制一行:
將光標(biāo)移到某一行,不用按1,直接按yy,改行代碼就被復(fù)制了。
②復(fù)制多行:
將光標(biāo)移到某一行,要復(fù)制從這行開始往下的n行,就按下n,然后按yy,這時(shí)從光標(biāo)開始往下的n行代碼就被復(fù)制了。
如果現(xiàn)在要復(fù)制4,5,6,7這四行代碼,就把光標(biāo)移到第4行,然后按4yy,此時(shí),這4行代碼已經(jīng)被復(fù)制了:
(3) p //粘貼
將光標(biāo)移到某一行按p將剛剛復(fù)制的內(nèi)容粘貼到光標(biāo)所在的下一行。
如果要在第8行粘貼剛剛上面復(fù)制的4,5,6,7這4行代碼,就將光標(biāo)移到第8行,然后按p:
(4)u //撤銷上一次操作
如果現(xiàn)在要撤銷剛剛上面粘貼的代碼,就直接按n,即可以撤銷上一步粘貼的操作:
(5) ctrl + r // 恢復(fù)上一次撤銷操作
如果,要恢復(fù)剛剛撤銷的內(nèi)容,就按ctrl + r :
(6) r和R //替換字符
①r:替換光標(biāo)所在位置的字符,先按r,在按自己想要替換的字符。
例如,有以下代碼:
現(xiàn)在要把光標(biāo)所在位置的“n”替換為“y”,就在光標(biāo)所在位置按r,然后按y將其替換:
②R:替換從當(dāng)前光標(biāo)開始往后的字符,按Esc結(jié)束替換。
例如,有以下代碼:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-717213.html
要將從現(xiàn)在光標(biāo)位置開始往后的字符替換為“ZZZZZZ”,按R,開始替換:
替換結(jié)束之后按Esc結(jié)束替換。
(7)cc //清除一行,進(jìn)入插入模式重寫代碼,寫完之后按Esc回到命令模式
例如,有如下代碼:
現(xiàn)在要清除光標(biāo)所在這一行進(jìn)行重寫,就按cc,從頭開始寫:
重寫之后按Esc回到命令模式。
(8)C //清除當(dāng)前光標(biāo)到行末的內(nèi)容,并進(jìn)入插入模式進(jìn)行重寫代碼,寫完之后按Esc回到命令模式
例如,有以下代碼:
現(xiàn)在要清除光標(biāo)到行末的內(nèi)容,并進(jìn)入插入模式重寫這段代碼,按C:
重寫之后,按Esc返回命令模式:
(8) shift + 6 //光標(biāo)移動(dòng)到當(dāng)前行的行頭
(9) shift + 4 //光標(biāo)移動(dòng)到當(dāng)前行的行尾
(10)G //光標(biāo)移動(dòng)到整個(gè)文本的最后一行
(11)gg //光標(biāo)移動(dòng)到整個(gè)文本的第一行
(12)n G //光標(biāo)移動(dòng)到第n行
(13) d n G //刪除光標(biāo)到n行的內(nèi)容
(14)d G //從當(dāng)前光標(biāo)位置刪除到文件末尾
例如,有以下代碼:
現(xiàn)在要?jiǎng)h除光標(biāo)所在位置11行行頭到末尾的內(nèi)容,就可以按dG:
(14) y n G //拷貝光標(biāo)到n行的內(nèi)容
4.末行模式下的操作
(1):w //保存文本
(2):q //退出編輯
(3):wq //保存并退出
(4):q! //強(qiáng)制退出
(5):w newfile //另存為
(6):set nu //顯示行號(hào)
(7) :set nonu //取消行號(hào)
(8): set hlsearch //設(shè)置高亮搜索
(9): set nohlsearch //取消高亮搜索
(10):n //跳轉(zhuǎn)的第n行
(11): n,m s/oldstring/newstring //替換整個(gè)文本每行的第一個(gè)oldstring
例如,有以下代碼:
現(xiàn)在要把第5行到第15行中,每一行的第一個(gè)“toy”替換成“boy”,輸入:進(jìn)入行末模式,然后輸入5,15 s/toy/boy
:
按回車,即可替換:
(12) :n, m s/oldstring/newstirng/g //替換整個(gè)文本所有的oldstring
例如:有以下代碼:
現(xiàn)在要把第5行到第15行中,所有的“toy”替換成“BBB”,輸入:進(jìn)入行末模式,然后輸入5,15 s/toy/BBB/g
:
按下回車,完成替換:
(13) /string //向下搜索string
例如,有以下代碼:
按/,/后面輸入要搜索的內(nèi)容,進(jìn)行搜索:
然后按回車,這時(shí)按n就可以在文件中從頭到尾依次搜索所輸入的內(nèi)容:
(14)?string //從下向上搜索string文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-717213.html
到了這里,關(guān)于Linux 文件編輯命令的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!