0(零) 将光标移到目前行的行首
$ 将光标移到目前行的行末
##G 将光标移到G前面的數字指定的行。例如,42G将光标移到檔案的第42行
G 将光标移到檔案的最後一行
w 将光标向前移到下一個單詞的首字母
e 将光标向前移到下一個單詞的最後一個字母
b 将光标向後移到上一個單詞首字母
- 将光标定位到上一行的行首
+ 将光标定位到下一行的行首
12| 将光标定位到目前行的第12列
L 将光标定位到螢幕的最下面一行
M 将光标定位到螢幕中間的一行
H 将光标定位到螢幕的最上面一行
” 兩個單引号将光标移到它的先前的位置
設定顯示選項
:set number 将行号作為螢幕顯示的一部分,但是行号并不是檔案的一部分。它的縮寫形式為:set nu
:set nonumber 清除螢幕上的行号。
文本删除指令
dd 删除目前光标所有的文本行
#dd 删除#行文本
x 删除光标所在的一個字元
#x 從文本中(光标位置開始向行末)删除#個字元
D 删除目前行上光标後面的部分
:#,#d 例如,:12,37d 将删除第12~37行之間的所有文本,包括第12和37行
撤銷指令
u撤銷。恢複最近一次的文本修改操作,即使已經移動了光标。
a(小寫) 從光标的右側開始插入文本
A(大寫) 從目前行的行末開始添加文本
i(小寫) 從光标的左側開始插入文本
I(大寫) 從目前行的行首插入文本
o(小寫) 在光标的下面打開(或插入)一個新行
O(大寫) 在光标的上面打開一個新行
:#r filename 例如,:8rreport.old讀取檔案report.old,并将它的内容放到目前檔案的第8行之後
s(小寫) 替換單個字元
S(大寫) 替換整行文本
r 用輸入的下一個字元替代目前光标處的字元,并自動傳回到指令模式
C(大寫) 修改行上從光标到行末之間的文本
yy将目前行複制或接出到内在緩沖區。20yy将目前行和它後面的19行(共20行)文本複制到記憶體。目标行仍然保留在檔案中,可以使用p指令将這些記憶體中的文本粘貼到檔案中
dd删除目前行,并将它放到與yy指令使用的相同的記憶體緩沖區。目标行從檔案中删除,但是可以使用p指令将它粘貼到檔案中的其他地方
yw 将目前光标所在的單詞接出或複制到内在緩沖區。6yw指令将把目前單詞和它後面的5個(共6個)單詞複制到記憶體
dw 删除目前的單詞,并将它放到與yw指令使用的相同的記憶體緩沖區。可以使用p指令将單詞粘貼到檔案的其他地方
yt#接出從光标到向前一個字元(不包括該字元)之間的文本。例如,ytB指令将從光标到字元B的下一執行個體(不包括字元B)之間的文本接出或複制到記憶體
p 将記憶體中的文本行粘貼到檔案中光标所在行的下面,或将記憶體中的單詞粘貼到檔案中光标的右側
P(大寫) 将接出或删除的文本行粘貼到檔案中光标所在行的上面。或将接出或删除的單詞粘貼到檔案中光标的左側
檔案移動指令
J 将下行文本同目前行合并成一行
:#,# move # 将指定的行移到目标位置。:12,35 move58指令将第12~35行之間的所有文本移到第58行的後面。縮寫為mo
:1,26 co 82 将第1~26行之間的所有文本複制到第82行的後面(可以選擇行号)
使用可視化編輯器進行全局編輯
:s /target/replacement/查找目前行上目标字元串的第1個執行個體并删除,然後用字元串replacement替換。隻修改目前行上的第1個目标執行個體
:g /target/s//replacement/查找所有行上目标字元串的第1個執行個體并删除,然後用字元串replacement替換。修改所有行上目标的第1個執行個體
:#,# s/target/replacement/ 在指定的行上進行替換。例如,:7,37s/march/walk/将查找第7~37行之間的所有文本行,并用字元串walk替換每行中的第1個目标字元串march。所有指定行上的第1個目标字元串修改
:#,# s/target/replacement/g 在指定的行上進行全局替換。例如,:1,$ s/fun/joyful/g将在第1行到檔案最後一行之間查找目标字元串fun的所有執行個體并删除,然後用字元串joyful替換。指定行上的目标字元串 的所有執行個體都被修改
:g /target/s/replacement查找所有行上目标字元串的第1個執行個體并删除,然後用字元串replacement替換。所有行上的第1個目标都被修改