命令
刪除(剪貼)
行刪除(剪貼)
D:(相當於 d$
) 刪除當前光標到行尾
d^:刪至行首
dd :刪除當前行
d**n**G: 刪除第n行到當前行
dG :刪除當前行到最後一行
S :刪除當前行,並處於可編輯狀態
C :刪除到行尾,並處於可編輯狀態
:n,m d:將第n行到第m行的內容刪除
字符刪除(剪貼)
x向後刪除一個字符
n**x向後刪除**n個字符
X向前刪除一個字符
n**X向後刪除**n個字符
s 刪除當前光標所在字符,並處於可編輯狀態
i 在光標之前插入
a 在光標之後插入
單詞刪除(剪貼)
diw 刪除光標所在的單詞,不包括空白字符
daw 刪除光標所在的單詞,包括空白字符
dw 噹噹前光標位置刪除到下一個單詞詞首
n**dw或**n**dW 刪除光標處開始及最後的**n-1個詞
複製粘貼
yy 複製當前行
n**yy 複製從當前行開始的**n行
y**n**w 複製n個單詞
y**n**l 複製n個字符
y$ 複製當前光標至行尾處
p(小寫) 粘貼到光標之後
P(大寫) 粘貼到光標之前
撤銷及重複
u 撤銷前次操作
ctrl+r 重複前次操作
:e! 文檔還原到最原始的狀態
搜索
/str 從光標位置向下搜索str
?str 從光標位置向上搜索str
n 查找下一個
N 查找上一個
替換
格式:
:[range]s/from/to/[flags]
[range] n,m
不寫range:默認爲光標所在的行
n:一個數字 代表第n
行
n,m:兩個數字,表範圍 n
到m
行(n、m可以用.(光標所在的行)
、$(最後一行)
表示)
%:所有行(與 1,$ 等價)
[flags]
無:只對指定範圍內的第一個匹配項進行替換。
g :對指定範圍內的所有匹配項進行替換。
c :c是confirm的縮寫,在替換前請求用戶確認。
e :忽略執行過程中的錯誤。
例子
:s/regexp/replacement/ 替換當前行第一個匹配
:s/regexp/replacement/g 替換當前行所有匹配
:n,$s/regexp/replacement/ 替換第n行到最後行一中每一行的第一個匹配(n 爲數字,若 n 爲 .,表示從當前行開始到最後一行)
:n,$s/regexp/replacement/g 替換第n行到最後行一中每一行中所有匹配
:%s/regexp/replacement/ (等同於 :g/regexp/s//replacement/) 替換每一行的第一個匹配
:%s/regexp/replacement/g (等同於 - :g/regexp/s//replacement/g) 替換每一行的所有匹配
移動
單詞
w:下一個單詞第一字符
W:下一個長單詞第一字符
e:下一個單詞最後字符
E:下一個長單詞最後字符
b:前一單詞第一字符
B:前一長單詞第一字符
ge:前一個單詞的最後一個字符
行
0:到行首
$:到行尾
gg:到第一行
G:到最後一行
n**G:到第**n行
句
(:到句首
):到句尾
段
{:到段首
}:到段尾
屏幕
ctrl+u:向上滾動半屏
ctrl+d:向下滾動半屏
PgUp:同ctrl+b 向上滾動一屏
PgDn:同ctrl+f 向下滾動一屏
多行拷貝移動
:n,m co p:將n行到m行之間的內容拷貝到第p行下
:n1,n2 m p:將n1行到n2行之間的內容移動到第p行下
退出保存
:w[!][filename]: 保存 !
表示強制保存 filename
表示另存爲filename
:n,m w filename :將n行到m行的內容另存爲filename
:q[!]:退出 !表示強制退出
:qw[!][filename]: 保存並退出 !
表示強制保存並退出 filename
表示另存爲filename,並退出
其他
:!command:執行shell命令command
:n,m w!command:將文件中n行到m行的內容作爲command的輸入並執行,若不指定n,m,則代表將整個文件內容作爲command的輸入執行
:r!command:將命令command的輸出結果放到當前行
:set nu:顯示行號
:set nonu:取消行號
:r filename:把filename文件的內容插入到當前光標所在位置下
ctrl+g:當前行信息
g ctrl+g:字數統計