VIM(VI)常用命令思維導圖

命令

刪除(剪貼)

行刪除(剪貼)

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:兩個數字,表範圍 nm行(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:字數統計

思維導圖

vim命令思維導圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章