【vim】插入模式與常用編輯操作


vim不像很多編輯器那樣一啟動便可以直接編輯文本,需要在普通模式按下i, a等鍵才會進入插入模式進行文本編輯。

如何進入插入模式

以下的命令都會讓vim從普通模式切換到插入模式,但命令執行后的字符插入位置有所不同。

命令 執行后的字符插入位置
i  當前字符之前
I  當前行首第一個非空白字符之前 
a  當前字符之后
A  當前行尾
s  刪除當前字符,光標停留在下一個字符處
S  刪除當前行,光標停留在行首
o  在當前行的下方插入一個新行,光標停在新行行首
O  在當前行的上方插入一個新行,光標停在新行行首

 

常用編輯操作

上一篇文章《vim】正常模式下的一般操作》已經提到過,vim中的很多操作都可以指定數量、范圍和方向等,編輯操作也不例外。為了簡潔,下表不會和上一篇一樣根據動作范圍不同分類(如單詞操作只給出w,不給出W,e,E,b,B等),而是只給出幾個經典操作,排列組合的舉例在下一小節介紹一些,具體的多種變化還是需要自己在實際使用中嘗試和練習。

類型
命令 說明
復制 yw  復制光標后的一個單詞
yy  復制當前行
<n>yy  復制以下n行
yG  復制當前行到文件末尾的內容
y%、ya{  光標放在{上,復制{}及其內部中的內容
剪切/刪除 x  剪切當前字符,相當於dl
X  剪切前一個字符,相當於dh
dw、cw  剪切光標后的一個單詞,d和c的區別是c會進入插入模式,下同
D、C  剪切到行尾,相當於d$,c$
dd、cc  剪切當前行
<n>dd、<n>cc  剪切以下n行
dG  剪切當前行到文件末尾的內容
J  在上一行中任意位置按J,將會把下一行合並到這行末尾(Join)
粘貼 p  將剪切板中的內容粘貼到光標后
P  將剪切板中的內容粘貼到光標前
替換 r  按下后,再輸入字符將替換當前字符
R  按下后,進入替換模式,將依次替換之后字符
撤銷 u  
重做 <Ctrl>+r  
縮進 >>   當前行向右縮進
<<  當前行向左縮進
<n>>>  以下n行向右縮進
<n><<  以下n行向左縮進
==  自動調整當前行的縮進,使之與上下文
<n>==  自動調整以下n行的縮進
gg=G  自動調整文件所有行的縮進
轉換大小寫  ~  轉換當前字符的大小寫
guw  將光標后的單詞全部變為小寫
gUw  將光標后的單詞全部變為大寫
guu  將當前行全部變為小寫
gUU  將當前行全部變為大寫
塊注釋* 注釋

 假如要將第8行到第16行的內容用//注釋掉,步驟是
 1. 光標定位到第8行行首
 2. 按<Ctrl>+v進入可視模式(Visual Block)
 3. 按j或向下箭頭,定位到第16行行首
 4. 按<Shift>+i,輸入//
 5. 按一次或兩次<Esc>

取消注釋

 假如要將第8行到第16行用//注釋的內容取消注釋,步驟是
 1. 光標定位到第8行行首
 2. 按<Ctrl>+v進入可視模式(Visual Block)
 3. 按j或向下箭頭,定位到第16行行首,按l或向右箭頭,選中//
 4. 按d或x,刪除//

 *其中塊注釋用到了可視模式的操作,這本應該在后面某篇中介紹的,但這個操作很重要,所以在這里介紹一下。取消注釋第3步中定位到第16行行首和向右移動選中//兩個操作,可以互換。

組合命令示例

y3w  復制光標后3個單詞
d2$  剪切光標到下面第2行的末尾
>}  將當前行到下一個空行之間的內容向右縮進
=%  光標放在{或}上,執行后自動縮進{}中間的內容
3gUU  將以下3行全部變為大寫
dt<c>  在當前行內,刪除從光標處到后面第1個字符<c>的內容

不常用的編輯操作

.  (小數點) 可以重復上一次的命令
<n><Command>  重復某個命令n次
:r!date  插入日期

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM