如何高效使用vim

Vim 是一款文本編輯器,被稱爲編輯器之神,很是適合在shell 中編輯代碼,熟練的使用Vim,可讓你高效的編寫代碼。shell

Vim 是Vi 的加強版,全部的類Unix 系統,都自帶這兩個工具,這兩個工具中使用較多的也是Vimvim

Vim 中有不少命令,本文並不打算介紹全部的命令,只介紹經常使用實用的命令,熟練使用這些命令,就能夠快速的編寫代碼。編輯器

1,Vim 的三種模式

vim 中有三種模式,分別是普通模式編輯模式可視模式函數

其實,還有一種模式是命令模式,這裏我將命令模式 納入到了普通模式中,並無單獨將命令模式拿出來。其實命令模式 就是在普通模式下輸入一個冒號:加一個命令工具

其中可視模式 又分爲行可視列可視,以下:插件

vim 模式
   ├── 普通模式
   ├── 編輯模式:可向文件中輸入內容
   └── 可視模式
          ├── 行可視:按行選中某塊區域
          └── 列可視:按列選中某塊區域

它們之間的轉換以下所示:code

在這裏插入圖片描述

  • vim + 文件名 打開文件進入普通模式
  • 普通模式 輸入ioa 進入編輯模式
  • 普通模式 輸入Ctrl + v 進入 列可視
  • 普通模式 輸入Shift +v 進入 行可視
  • 其它模式輸入Esc 返回普通模式

下面介紹每一個模式支持的經常使用命令blog

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 移動到上一次編輯的地方
:+數字N 輸入一個:,再輸入一個數字,按回車,快速跳到某一行

2.3,如何刪除/複製/粘貼

使用如下命令刪除/複製/粘貼

命令 含義
dd 刪除光標所在的行,而且內容在剪切板
yy 複製光標所在的行,而且內容在剪切板
dw 刪除光標所在的單詞,而且內容在剪切板
x 刪除光標所在的一個字符,而且內容在剪切板
D 刪除光標到行末尾全部的內容,而且內容在剪切板
p 粘貼剪切板的內容到光標處

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 反撤銷操做
~ 英文字符大小寫轉換
:%s/x/y/g 將當前文件中全部的x換成y
數字 + == 用於格式化代碼,好比先輸入一個999,再輸入==,從當前行開始,如下999 行代碼都會格式化
:set nu 顯示行號
:set nonu 關閉行號

3,編輯模式

在編輯模式下可使用下面命令。

命令 含義
Ctrl + n 搜素下一個變量名,函數自動補全
Ctrl + p 搜索上一個變量名,函數自動補全
Shift + Insert 在當前光標插入系統剪切板的內容

4,行可視模式

行可視模式下可使用下面命令。

命令 含義
k方向鍵↑ 向上選中多行
j方向鍵↓ 向下選中多行
d 刪除選中的區域內容,而且內容在剪切板
y 複製選中的區域內容,而且內容在剪切板
p 粘貼剪切板中的內容
> 將選中的區域向右縮進
< 將選中的區域向左縮進

5,列可視模式

列可視模式下可使用下面命令。

命令 含義
k方向鍵↑ 向上選中多行
j方向鍵↓ 向下選中多行
h方向鍵← 向左選中多列
l方向鍵→ 向右選中多列
d 刪除選中的區域內容,而且內容在剪切板
y 複製選中的區域內容,而且內容在剪切板
p 粘貼剪切板中的內容
> 將選中的區域向右縮進
< 列可視模式下不支持

以上講到的命令須要多使用才能熟練,所謂孰能生巧。

若是你想配置Vim 插件 的話,建議不須要配置多麼花哨複雜的插件,簡單實用就好。

注意,在使用Vim 的時候,鼠標基本是沒有什麼用的,因此這時能夠忘記鼠標的存在,只有鍵盤

另外,vimdiff 命令能夠對比多個文件的不一樣,以下所示,打開兩個文件(也可打開多個文件):

vimdiff 1.c 2.c

在這裏插入圖片描述

這裏還有一個Vim 小遊戲 ------《Vim 大冒險》,頗有創意的一個小遊戲,能夠鍛鍊使用Vim,感興趣的能夠玩一下。

6,Vim 命令速查表

最後附上兩張Vim 命令速查表,自行選擇,各取所需。

圖一:

在這裏插入圖片描述

圖二: PDF版在這裏

在這裏插入圖片描述 (完。)

相關文章
相關標籤/搜索