vim的工作模式
vim有三種工作模式, 用戶可以自由切換
命令模式(Command): vi/vim的默認模式,
輸入命令
–從其它模式切換到命令模式:
鍵
–很多命令以冒號(:)開始,
命令后加嘆號表示強制執行
–命令前可以跟數字n表示重復該命令n次
插入模式(Insert): 插入文本
–從命令模式, 通過命令 i I a A o O s S
等進入
普通模式(normal)或者可視模式(Visual):
高亮并選定正文
–從命令模式, 通過命令v 切換, 移動光標選定,
x刪除一個字符,dd刪除一行字符,J可以把兩行合并為一行,也就是說兩行之間的換行符被刪除或者 y 復制
如果不曉得現在是處於什麼模式,可以多按幾次
[ESC],系統如發出嗶嗶聲就表示已處于指令模式下了。
進入和退出vim
進入: 在命令行下輸入 vi 或者 vi filename
(如果filename不存在則創建,存在則打開)
退出: 在命令模式下輸入
:wq?保存并退出 :wq!?強制保存并退出 :q?退出 :q!?強制退出 :x?如果有改動則保存并退出, 否則直接退出 :w filename?另存為filename :e?重新讀入當前文件
插入文本
在命令模式下,輸入下述命令進入插入模式,開始插入文本
i 在光標前插入 I 在本行最后插入 a 在光標后插入 A 在本行開頭插入 o 在當前行下方插入 O 在當前行上方插入 cw 改變光標開始的那個單詞 C 替換自光標至行尾的文本 s 替換當前位置的字符 S 替換當前行 r 以單個字符替換當前字符 R 自光標開始替換
刪除文本
進入命令模式,輸入下述命令刪除文本
x 刪除當前光標所在字符 4x
刪除自當前光標開始的4個字符 dw 刪除自當前光標位置開始的單詞 dd
刪除當前行 10dd 刪除當前光標位置開始10行 d$ 刪除當前光標位置至行尾的文本 dG 刪除當前光標位置至文件尾的文本 :n,m d 刪除n行到m行的文本 :.,+5 d
刪除當前行開始的5行文本
注意:
上述被刪除的文本都存放在臨時緩沖區中, 可以通過 p
命令粘貼到當前光標位置
移動光標
進入命令模式,移動光標
h 光標左移一個字符 l 光標右移一個字符 j 光標下移一行 k 光標上移一行 w 光標前移到下一個單詞開始 b 光標后移到下一個單詞開始 10g 光標到第10行
w 光標前移到下一個單詞開始 b 光標后移到下一個單詞開始 10g 光標到第10行
xg光標移動到第幾行
gg光標移動到第一行 G 光標到最后一行 % 移動光標到匹配的另一半括號
緩沖區
復制或刪除的內容總是先存放在緩沖區中,缺省是放在匿名緩沖區中,例如
yy 將當前行復制到緩沖區 yw 將光標開始單詞復制到緩沖區 yh 將光標左邊的字符復制到緩沖區 p 將緩沖區內容粘貼到光標前 P 將緩沖區內容粘貼到光標后
命名緩沖區:
a-z (替換), A-Z (附加)
a-z緩沖區,內容每次復制進來時會替換掉原有內容
A-Z緩沖區,內容每次復制進來時被附加在原有內容后
"ayy 將當前行內容復制到a 緩沖區 "a10yy 將當前開始的10行內容復制到a 緩沖區 "ap 將a 緩沖區的內容粘貼在當前光標前 "Add 將當前行刪除, 內容附加到A 緩沖區
搜索與替換
在命令模式下輸入下述命令搜索文本,注意vi用的是正則表達式,意味著輸入 1+1會匹配
1111111,而不會匹配"1+1"
:set
ignorecase 表示搜索時忽略大小寫的
用/命令進行搜索
/regexp 向前搜索匹配regexp的字符串 n 繼續搜索 N 反向搜索 ?regexp 向后搜索匹配regexp的字符串 :s/regexp/s2 將本行第一個匹配regexp的字符串替換為s2 :s/regexp/s2/g 將本行所有匹配regexp的字符串替換為s2 :1,$ s/regexp/s2/g 將文件中所有匹配regexp的字符串替換為s2
其它
u 取消上次命令
CTRL-R (重做)來反轉撤消的動作。換句話說,它是對撤消的撤消。 J 當前兩行合并成1行<< 當前行左縮進一個tab 10>> 當前行開始的10行右縮進一個tab :set 查看/修改當前設置 :help 尋求幫助
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态