vim編輯器
文章目錄
vim簡介: Vim是從 vi 發展出來的一個文本編輯器。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用。 就是編輯文本寫代碼的
一、vim的三種工作模式
1 命令模式
控制光標移動,對文本進行復制、粘貼、刪除等工作
用戶剛剛啓動 vi/vim,便進入了命令模式。此狀態下敲擊鍵盤動作會被Vim識別爲命令,而非輸入字符
例如:當用戶輸入 vim test 後進入命令模式,
按下字母i,此字母會被解釋爲命令,進入編輯模式(insert i)
類比word文檔中,設置文章段落格式等命令,只不過vim中沒有鼠標可以點,只好用命令代替了。
命令模式下常用的快捷鍵
(1)移動光標
gg | 光標移動到文件開頭 |
---|---|
G | 光標移動到文件末尾(懷疑G 是不是 game over 的縮寫) |
^ | 光標移動到當前行的開頭(^在正則表達式中匹配行首) |
$ | 光標移動到當前行的末尾(^在正則表達式中匹配行尾) |
(2)刪除
dd | 刪除當前行 |
---|---|
ndd | 刪除n行 |
d$ | 刪除光標至行尾的位置 |
(3)複製粘貼
yy | 複製當前行 |
---|---|
p | 將之前刪除(dd)或複製(yy)過的數據粘貼到光標後面。 |
P | 粘貼至當前行之前 |
(4)撤銷
u | 撤銷一步 |
---|---|
uu | 撤銷一步 |
強調一哈:這些快捷鍵必須在命令模式下使用
2 編輯模式
在命令模式下輸入以下命令(aio)可以進入編輯模式
i | 在當前光標前面插入數據(insert) |
---|---|
a | 在當前光標後面插入數據(append attach) |
o | 在當前行後面插入空白行 |
3 末行模式(底線命令模式)
在命令模式下輸入 : 即可進入末行模式,在冒號後面輸入指令,即可實現特定的功能
(1)查找與替換
/ | 在上往下的查找(n跳轉至下一個匹配的關鍵詞,N跳轉至上一個匹配的關鍵詞) |
---|---|
? | 在下往上的查找(n跳轉至上一個匹配的關鍵詞,N跳轉至下一個匹配的關鍵詞(感覺像物理裏面的,n是與命令同向的) |
假如當前在編輯模式下,實現查早與替換功能:
注意:光標當前的位置,:和 s 之間有一個空格。
g代表替換一行的全部
%代表搜索整個文本
: s/root/admin | 將光標當前行中第一個出現的root替換爲admin,沒有則不替換 |
---|---|
: s/root/admin/g | 將光標當前行中的所有root替換爲admin |
:3,5 s/sbin/bin/g | 將3到5行的所有sbin 換爲bin |
:% s/nologin/fault/g | 將所有行的nologin都替換爲fault |
(2)保存與退出
假如當前在編輯模式下,實現保存與退出功能:
:q! | 強制退出,不保存並退出q(quit) |
---|---|
:wq | 保存並退出(w:write) |
:x | 保存並退出 |
:w | 保存 |
:w b.txt | 另存爲 b.txt |
在命令模式下輸入ZZ,也可以實現保存並退出文檔
二、三種模式的切換
三、vim小技巧
顯示行號 | 命令模式下輸入:set number 或者簡寫 :set nu |
---|---|
忽略大小寫 | vim默認是區分大小寫的,:set ignorecase |
多窗口編輯 | 在命令模式下輸入:split,窗口切換control + w + h/j/k/l(鍵盤上四個字母連一塊呢)h代表左邊,l代表右邊,J代表上邊,K代表下邊 |
執行shell命令 | 使用vim的時候,想執行一條shell命令,但是又不想退出vim編輯器,可以在命令模式下,輸入 :!ls即可(:!{命令} |
自動補齊 | vim可以根據上文內容自動補齊輸入。假如在文件中定義一個變量,FIRST_TIME=09,以後再輸入這個變量名時,可輸入F1,然後使用快捷鍵control+N,實現自動補齊功能。 |