Vim 是一款文本編輯器模捂,被稱為編輯器之神
,非常適合在shell
中編輯代碼贤壁,熟練的使用Vim
悼枢,可以讓你高效的編寫代碼。
Vim 是Vi 的增強版脾拆,所有的類Unix 系統(tǒng)馒索,都自帶這兩個工具,這兩個工具中使用較多的也是Vim
名船。
Vim 中有很多命令绰上,本文并不打算介紹所有的命令,只介紹常用實用
的命令渠驼,熟練使用這些命令蜈块,就可以快速的編寫代碼。
1迷扇,Vim 的三種模式
vim 中有三種模式百揭,分別是普通模式
,編輯模式
蜓席,可視模式
信峻。
其實,還有一種模式是命令模式
瓮床,這里我將命令模式
歸入到了普通模式中盹舞,并沒有單獨將命令模式
拿出來。其實命令模式
就是在普通模式
下輸入一個冒號:
加一個命令
隘庄。
其中可視模式
又分為行可視
和列可視
踢步,如下:
vim 模式
├── 普通模式
├── 編輯模式:可向文件中輸入內(nèi)容
└── 可視模式
├── 行可視:按行選中某塊區(qū)域
└── 列可視:按列選中某塊區(qū)域
它們之間的轉(zhuǎn)換如下所示:
-
vim + 文件名
打開文件進入普通模式
-
普通模式
輸入i
或o
或a
進入編輯模式
-
普通模式
輸入Ctrl + v
進入列可視
-
普通模式
輸入Shift +v
進入行可視
- 其它模式輸入
Esc
返回普通模式
下面介紹每個模式支持的常用命令
。
2丑掺,普通模式
在普通模式下获印,可以使用下面這些命令,普通模式的命令最多街州。
2.1兼丰,如何進入編輯模式
使用以下命令進入編輯模式
:
命令 | 含義 |
---|---|
i |
在當前光標 前位置進入編輯模式
|
a |
在當前光標 后位置進入編輯模式
|
o |
在當前光標 下一行進入編輯模式
|
2.2玻孟,如何移動光標
使用以下命令移動光標:
命令 | 含義 |
---|---|
k 或方向鍵↑
|
向上移動,建議使用k
|
j 或方向鍵↓
|
向下移動鳍征,建議使用j
|
h 或方向鍵←
|
向左移動黍翎,建議使用h
|
l 或方向鍵→
|
向右移動,建議使用l
|
^ |
移動到當前行第一個可見字符 |
0 或者Home鍵
|
移動到當前行開頭 |
$ 或者End鍵
|
移動到當前行最后 |
% |
在兩個匹配的{}[]()<> 之間移動 |
w |
向后移動一個單詞 |
b |
向前移動一個單詞 |
gg |
移動到當前文件的第一行 |
G |
移動到當前文件的最后一行 |
M |
移動到當前文件的中間一行 |
Ctrl + o |
移動到上一次編輯的地方 |
: +數(shù)字N
|
輸入一個: 艳丛,再輸入一個數(shù)字 匣掸,按回車,快速跳到某一行 |
2.3氮双,如何刪除/復制/粘貼
使用以下命令刪除
/復制
/粘貼
:
命令 | 含義 |
---|---|
dd |
刪除光標所在的行碰酝,并且內(nèi)容在剪切板 |
yy |
復制光標所在的行,并且內(nèi)容在剪切板 |
dw |
刪除光標所在的單詞戴差,并且內(nèi)容在剪切板 |
x |
刪除光標所在的一個字符送爸,并且內(nèi)容在剪切板 |
D |
刪除光標 到行末尾 所有的內(nèi)容,并且內(nèi)容在剪切板 |
p |
粘貼剪切板的內(nèi)容到光標處 |
2.4暖释,如何進行搜索
使用以下命令在當前文件中搜索
:
命令 | 含義 |
---|---|
* |
光標停留在某個字符串時碱璃,* 可以在當前文件中搜索這個字符串
|
/+字符串+回車 |
在當前頁面搜索這個字符串
|
n |
鎖定到下一個匹配的字符串
|
N |
鎖定到上一個匹配的字符串
|
:set hlsearch |
讓所有匹配的字符串 高亮 |
:set noh |
取消字符串 高亮 |
2.5,如何進行分屏
vim 分屏
:
命令 | 含義 |
---|---|
:vsp + 文件名 |
橫向分屏 |
:sp + 文件名 |
豎向分屏 |
Ctrl + ww |
鎖定到下一個屏 |
退出命令 |
使用退出命令 饭入,退出當前屏 |
2.6嵌器,如何退出文件
退出命令
如下:
命令 | 含義 |
---|---|
:wq |
保存 并退出 當前文件 |
:w |
保存 當前文件 |
:q |
退出 當前文件 |
:qa |
退出 打開的所有文件 |
:q! |
強制退出 (不保存) |
2.7,如何進入可視模式
進入可視模式
:
命令 | 含義 |
---|---|
Shift + v |
進入行可視模式
|
Ctrl + v |
進入列可視模式
|
2.8谐丢,其它
命令 | 含義 |
---|---|
u |
撤銷 上一次操作 |
Ctrl + r |
反撤銷 操作 |
~ |
英文字符大小寫轉(zhuǎn)換 |
:%s/x/y/g |
將當前文件中所有的x 換成y
|
數(shù)字 + ==
|
用于格式化代碼 爽航,比如先輸入一個999 ,再輸入== 乾忱,從當前行開始讥珍,以下999 行代碼都會格式化
|
:set nu |
顯示行號 |
:set nonu |
關閉行號 |
3,編輯模式
在編輯模式下可以使用下面命令窄瘟。
命令 | 含義 |
---|---|
Ctrl + n |
搜素下一個變量名衷佃,函數(shù)自動補全
|
Ctrl + p |
搜索上一個變量名,函數(shù)自動補全
|
Shift + Insert |
在當前光標插入系統(tǒng)剪切板 的內(nèi)容 |
4蹄葱,行可視模式
在行可視模式
下可以使用下面命令氏义。
命令 | 含義 |
---|---|
k 或方向鍵↑
|
向上選中多行 |
j 或方向鍵↓
|
向下選中多行 |
d |
刪除 選中的區(qū)域內(nèi)容,并且內(nèi)容在剪切板 |
y |
復制 選中的區(qū)域內(nèi)容图云,并且內(nèi)容在剪切板 |
p |
粘貼 剪切板中的內(nèi)容 |
> |
將選中的區(qū)域向右縮進
|
< |
將選中的區(qū)域向左縮進
|
5惯悠,列可視模式
在列可視模式
下可以使用下面命令。
命令 | 含義 |
---|---|
k 或方向鍵↑
|
向上選中多行 |
j 或方向鍵↓
|
向下選中多行 |
h 或方向鍵←
|
向左選中多列 |
l 或方向鍵→
|
向右選中多列 |
d |
刪除 選中的區(qū)域內(nèi)容竣况,并且內(nèi)容在剪切板 |
y |
復制 選中的區(qū)域內(nèi)容克婶,并且內(nèi)容在剪切板 |
p |
粘貼 剪切板中的內(nèi)容 |
> |
將選中的區(qū)域向右縮進
|
< |
列可視模式下不支持
|
以上講到的命令需要多使用才能熟練,所謂孰能生巧。
如果你想配置Vim 插件
的話情萤,建議不需要配置多么花哨復雜的插件鸭蛙,簡單實用就好。
注意筋岛,在使用Vim
的時候娶视,鼠標
基本是沒有什么用的,所以這時可以忘記鼠標
的存在泉蝌,只有鍵盤
歇万。
另外揩晴,vimdiff
命令可以對比多個文件的不同勋陪,如下所示,打開兩個文件(也可打開多個文件):
vimdiff 1.c 2.c
這里還有一個Vim 小游戲 ------《Vim 大冒險》硫兰,很有創(chuàng)意的一個小游戲诅愚,可以鍛煉使用Vim,感興趣的可以玩一下劫映。
6违孝,Vim 命令速查表
最后附上兩張Vim 命令速查表
,自行選擇泳赋,各取所需雌桑。
圖一:
[圖片上傳失敗...(image-3bd0f5-1586688546775)]
圖二: PDF版在這里。
(完祖今。)