Vim 是一款文本編輯器,被稱爲編輯器之神
,很是適合在shell
中編輯代碼,熟練的使用Vim
,可讓你高效的編寫代碼。shell
Vim 是Vi 的加強版,全部的類Unix 系統,都自帶這兩個工具,這兩個工具中使用較多的也是Vim
。vim
Vim 中有不少命令,本文並不打算介紹全部的命令,只介紹經常使用實用
的命令,熟練使用這些命令,就能夠快速的編寫代碼。編輯器
vim 中有三種模式,分別是普通模式
,編輯模式
,可視模式
。函數
其實,還有一種模式是命令模式
,這裏我將命令模式
納入到了普通模式中,並無單獨將命令模式
拿出來。其實命令模式
就是在普通模式
下輸入一個冒號:
加一個命令
。工具
其中可視模式
又分爲行可視
和列可視
,以下:插件
vim 模式 ├── 普通模式 ├── 編輯模式:可向文件中輸入內容 └── 可視模式 ├── 行可視:按行選中某塊區域 └── 列可視:按列選中某塊區域
它們之間的轉換以下所示:code
vim + 文件名
打開文件進入普通模式
普通模式
輸入i
或 o
或 a
進入編輯模式
普通模式
輸入Ctrl + v
進入 列可視
普通模式
輸入Shift +v
進入 行可視
Esc
返回普通模式
下面介紹每一個模式支持的經常使用命令
。blog
在普通模式下,可使用下面這些命令,普通模式的命令最多。遊戲
使用如下命令進入編輯模式
:圖片
命令 | 含義 |
---|---|
i |
在當前光標 前位置進入編輯模式 |
a |
在當前光標 後位置進入編輯模式 |
o |
在當前光標 下一行進入編輯模式 |
使用如下命令移動光標:
命令 | 含義 |
---|---|
k 或方向鍵↑ |
向上移動,建議使用k |
j 或方向鍵↓ |
向下移動,建議使用j |
h 或方向鍵← |
向左移動,建議使用h |
l 或方向鍵→ |
向右移動,建議使用l |
^ |
移動到當前行第一個可見字符 |
0 或者Home鍵 |
移動到當前行開頭 |
$ 或者End鍵 |
移動到當前行最後 |
% |
在兩個匹配的{}[]()<> 之間移動 |
w |
向後移動一個單詞 |
b |
向前移動一個單詞 |
gg |
移動到當前文件的第一行 |
G |
移動到當前文件的最後一行 |
M |
移動到當前文件的中間一行 |
Ctrl + o |
移動到上一次編輯的地方 |
: +數字N |
輸入一個: ,再輸入一個數字 ,按回車,快速跳到某一行 |
使用如下命令刪除
/複製
/粘貼
:
命令 | 含義 |
---|---|
dd |
刪除光標所在的行,而且內容在剪切板 |
yy |
複製光標所在的行,而且內容在剪切板 |
dw |
刪除光標所在的單詞,而且內容在剪切板 |
x |
刪除光標所在的一個字符,而且內容在剪切板 |
D |
刪除光標 到行末尾 全部的內容,而且內容在剪切板 |
p |
粘貼剪切板的內容到光標處 |
使用如下命令在當前文件中搜索
:
命令 | 含義 |
---|---|
* |
光標停留在某個字符串時,* 能夠在當前文件中搜索這個字符串 |
/+字符串+回車 |
在當前頁面搜索這個字符串 |
n |
鎖定到下一個匹配的字符串 |
N |
鎖定到上一個匹配的字符串 |
:set hlsearch |
讓全部匹配的字符串 高亮 |
:set noh |
取消字符串 高亮 |
vim 分屏
:
命令 | 含義 |
---|---|
:vsp + 文件名 |
橫向分屏 |
:sp + 文件名 |
豎向分屏 |
Ctrl + ww |
鎖定到下一個屏 |
退出命令 |
使用退出命令 ,退出當前屏 |
退出命令
以下:
命令 | 含義 |
---|---|
:wq |
保存 並退出 當前文件 |
:w |
保存 當前文件 |
:q |
退出 當前文件 |
:qa |
退出 打開的全部文件 |
:q! |
強制退出 (不保存) |
進入可視模式
:
命令 | 含義 |
---|---|
Shift + v |
進入行可視模式 |
Ctrl + v |
進入列可視模式 |
命令 | 含義 |
---|---|
u |
撤銷 上一次操做 |
Ctrl + r |
反撤銷 操做 |
~ |
英文字符大小寫轉換 |
:%s/x/y/g |
將當前文件中全部的x 換成y |
數字 + == |
用於格式化代碼 ,好比先輸入一個999 ,再輸入== ,從當前行開始,如下999 行代碼都會格式化 |
:set nu |
顯示行號 |
:set nonu |
關閉行號 |
在編輯模式下可使用下面命令。
命令 | 含義 |
---|---|
Ctrl + n |
搜素下一個變量名,函數自動補全 |
Ctrl + p |
搜索上一個變量名,函數自動補全 |
Shift + Insert |
在當前光標插入系統剪切板 的內容 |
在行可視模式
下可使用下面命令。
命令 | 含義 |
---|---|
k 或方向鍵↑ |
向上選中多行 |
j 或方向鍵↓ |
向下選中多行 |
d |
刪除 選中的區域內容,而且內容在剪切板 |
y |
複製 選中的區域內容,而且內容在剪切板 |
p |
粘貼 剪切板中的內容 |
> |
將選中的區域向右縮進 |
< |
將選中的區域向左縮進 |
在列可視模式
下可使用下面命令。
命令 | 含義 |
---|---|
k 或方向鍵↑ |
向上選中多行 |
j 或方向鍵↓ |
向下選中多行 |
h 或方向鍵← |
向左選中多列 |
l 或方向鍵→ |
向右選中多列 |
d |
刪除 選中的區域內容,而且內容在剪切板 |
y |
複製 選中的區域內容,而且內容在剪切板 |
p |
粘貼 剪切板中的內容 |
> |
將選中的區域向右縮進 |
< |
列可視模式下不支持 |
以上講到的命令須要多使用才能熟練,所謂孰能生巧。
若是你想配置Vim 插件
的話,建議不須要配置多麼花哨複雜的插件,簡單實用就好。
注意,在使用Vim
的時候,鼠標
基本是沒有什麼用的,因此這時能夠忘記鼠標
的存在,只有鍵盤
。
另外,vimdiff
命令能夠對比多個文件的不一樣,以下所示,打開兩個文件(也可打開多個文件):
vimdiff 1.c 2.c
這裏還有一個Vim 小遊戲 ------《Vim 大冒險》,頗有創意的一個小遊戲,能夠鍛鍊使用Vim,感興趣的能夠玩一下。
最後附上兩張Vim 命令速查表
,自行選擇,各取所需。
圖一:
圖二: PDF版在這裏。
(完。)