一、Vim命令行模式常見快捷方式
1. 三種主要模式:
① 命令(Normal)模式:
默認模式,移動光標,剪切/粘貼文本
② 插入(Insert)或編輯模式:
修改文本
③ 擴展命令(extended command )模式:
保存,退出等
2. 模式間轉換:
① 命令模式 --> 插入模式
i insert, 在光標所在處輸入
此處按i鍵,結果如下
I 在當前光標所在行的行首輸入
同理,按I鍵,結果如下
a append, 在光標所在處後面輸入
同理,按a鍵,結果如下
A 在當前光標所在行的行尾輸入
同理,按A鍵,結果如下
o 在當前光標所在行的下方打開一個新行
同理,按o鍵,結果如下
O 在當前光標所在行的上方打開一個新行
同理,按O鍵,結果如下
② 插入模式 --------> 命令模式
按ESC鍵
③ 命令模式 --------> 擴展命令模式
按:進入擴展命令模式,可輸入命令
④ 擴展命令模式 --------> 命令模式
按ESC鍵取消命令或按enter鍵執行命令可從擴展命令模式進入命令模式
3. 關閉文件方法:
① 擴展命令模式
:q 退出
:q! 強制退出,丟棄做出的修改
:wq 保存退出
:x 保存退出
② 命令模式
ZZ 保存退出
ZQ 不保存退出
4. 擴展命令模式常用命令:
① w 寫(存)磁盤文件
② wq 寫入並退出
見上面的“關閉文件方式”
③ x 寫入並退出
見上面的“關閉文件方式”
④ q 退出
見上面的“關閉文件方式”
⑤ q! 不存盤退出,即使更改都將丟失
見上面的“關閉文件方式”
⑥ r filename 讀文件內容到當前文件中
⑦ w filename 將當前文件內容寫入另一個文件
⑧ !command 執行命令
⑨ r!command 讀入命令的輸出
5. 命令模式光標跳轉:
① 字符間跳轉
h: 左 l: 右 j: 下 k: 上
#COMMAND:跳轉由#指定的個數的字符
例如:按3h即向左跳轉3個字符
② 單詞間跳轉
w:下一個單詞的詞首
e:當前或下一單詞的詞尾
當前單詞詞尾:
下個單詞詞尾:
b:當前或前一個單詞的詞首
當前單詞詞首
前一個單詞詞首
#COMMAND:由#指定一次跳轉的單詞數
例如:跳轉3個單詞的詞尾,即3e:
③ 當前頁跳轉
H:頁首 M:頁中間行 L:頁底
zt:將光標所在當前行移到屏幕頂端
zz:將光標所在當前行移到屏幕中間
zb:將光標所在當前行移到屏幕底端
④ 行首行尾跳轉
^: 跳轉至行首的第一個非空白字符
0: 跳轉至行首
$: 跳轉至行尾
⑤ 行間移動
G:最後一行
1G, gg: 第一行
6. 命令模式翻屏操作:
① Ctrl+f: 向文件尾部翻一屏
② Ctrl+b: 向文件首部翻一屏
③ Ctrl+d: 向文件尾部翻半屏
④ Ctrl+u:向文件首部翻半屏
7. 命令模式編輯操作:
① 字符編輯
x: 刪除光標處的字符
#x: 刪除光標處起始的#個字符
例如:刪除光標處的3個字符,即3x
xp: 交換光標所在處的字符及其後面字符的位置
~:轉換大小寫
J:刪除當前行後的換行符
② 替換命令(r, replace)
r: 替換光標所在處的字符
例如將光標處的r替換成b,則按rb鍵
R:切換成REPLACE模式
在命令模式下按R鍵進入REPLACE模式,可直接對光標所在處逐一進行替換
③ 刪除命令
d$: 刪除到行尾
d^:刪除到非空行首
d0:刪除到行首
dd: 刪除光標所在的行
#dd:多行刪除
如往下刪除三行,按3dd
④ 複製命令(y, yank)
y: 複製,行爲相似於d命令
⑤ 粘貼命令(p, paste)
p:緩衝區存的如果爲整行,則粘貼當前光標所在行的下方;否則,則粘貼
至當前光標所在處的後面
粘貼整行(配合yy命令):
粘貼光標所在處的後面,例如,將光標所在處至行首位置複製粘貼到光標所在處的後面:
P:緩衝區存的如果爲整行,則粘貼當前光標所在行的上方;否則,則粘貼
至當前光標所在處的前面
粘貼整行(配合yy命令):
粘貼光標所在處的前面,例如,將光標所在處至行首位置複製粘貼到光標所在處的前面:
⑥ 改變命令(c, change)
c: 修改後切換成插入模式
c$ c^ c0與之前的d和y類似
cc:刪除當前行並輸入新內容
C:刪除當前光標到行尾,並切換成插入模式
二、Vim查找、替換方法
1. 命令模式:查找
① /PATTERN:從當前光標所在處向文件尾部查找
例如:查找“sshd”字符串
回車即高亮顯示“sshd”字符串
② ?PATTERN:從當前光標所在處向文件首部查找
同上,/sshd命令改成?sshd,即向上查找包含sshd的字符串
③ n:與命令同方向
上例,/sshd查找時,按n鍵即向下查找第二個包含sshd的字符串,並將光標指向該處
如果是?sshd,按n鍵即向上查找第二個包含sshd的字符串
④ N:與命令反方向
同理,與n鍵方向相反
2. 擴展命令模式:查找並替換
① s: 在擴展模式下完成查找替換操作
格式:s/要查找的內容/替換爲的內容/修飾符
例如:將查找mail字符串並替換成QQ
要查找的內容:可使用模式
例如:查找帶有數字的字符串,替換爲A
替換爲的內容:不能使用模式,但可以使用\1, \2, ...等後向引用符號;還可
以使用“&”引用前面查找時查找到的整個內容
例如:查找mail字符串替換爲在mail後加上“QQ”
修飾符:
i: 忽略大小寫
加上i修飾符後,要查找的字符串無論大小寫都匹配
g: 全局替換;默認情況下,每一行只替換第一次出現
例如:將該行中所有的47都替換成99,就需要加上g修飾符,否則只替換最先匹配到的
gc:全局替換,每次替換前詢問
每次匹配到後提示是否替換,按照提示選擇替換與否,直至將匹配到的字符都處理完
② s: 查找替換中的分隔符/可替換爲其它字符
例如:將/sbin/nologin替換成/bin/bash