第一次使用vim,啥都不懂,輸入也不能輸入,退出也不會退出,特别的尴尬。。。。後來慢慢的接觸學習,發現vim真的挺好用的,不過上手有點慢,多用就對了,用多了我相信你也會喜歡這個文本編輯工具的。
vi/vim 的使用
基本上 vi/vim 共分為三種模式,分别是指令模式(Command mode),輸入模式(Insert mode)和底線指令模式(Last line mode)。 這三種模式的作用分别是:
1、指令模式:
使用 Vim 編輯檔案時,預設處于指令模式。在此模式下,可以使用上、下、左、右鍵或者 k、j、h、l 指令進行光标移動,還可以對檔案内容進行複制、粘貼、替換、删除等操作。
2、輸入模式:
在輸入模式下可以對檔案執行寫操作,類似在 Windows 的文檔中輸入内容。進入輸入模式的方法是輸入 i、a、o 等插入指令,編寫完成後按 Esc 鍵即可傳回指令模式。
在輸入模式中,可以使用以下按鍵:
字元按鍵以及Shift組合,輸入字元
ENTER,Enter鍵,換行
BACK SPACE,倒退鍵,删除光标前一個字元
DEL,删除鍵,删除光标後一個字元
方向鍵,在文本中移動光标
HOME/END,移動光标到行首/行尾
Page Up/Page Down,上/下翻頁
Insert,切換光标為輸入/替換模式,光标将變成豎線/下劃線
ESC,退出輸入模式,切換到指令模式
3、編輯模式:
如果要儲存、查找或者替換一些内容等,就需要進入編輯模式。編輯模式的進入方法為:在指令模式下按":"鍵,Vim 視窗的左下方會出現一個":"符号,這時就可以輸入相關的指令進行操作了。指令執行後會自動傳回指令模式。
二、基本操作
1、打開檔案,或者是建立檔案
統一指令為:vim file_name
例如:vim array.sh

然後在打開頁面的左下角可以看到檔案的資訊,行數和字元數,比如上圖的241行,5450個字元
2、移動光标:
a、以字元為機關移動
在指令模式中使用 h、j、k、l 這 4 個字元控制方向,分别表示向左、向下、向上、向左。
b、以單詞為機關移動
w:移動光标到下一個單詞的單詞首
b:移動光标到上一個單詞的單詞首
e:移動光标到下一個單詞的單詞尾
c、移動到行尾或者行首
使用""指令将光标移至行尾,或者使用"0"或"′′指令将光标移至行首。其實,對于
指令來說,可以使用諸如"n$"之類的指令來将光标移至目前光标所在行的之後 n 行的行尾(n 為數字);對于"0"指令來說卻不可以,但可以用"n^"
移動到一行的指定字元處(f 指令)
例如,某行為"you can you up, no can no bb",現在需要将光标移動到字元 p 處,則可以使用"fp"指令,這樣光标就會迅速定位到字元 p 處。f 指令有一個使用條件,即光标需在指定字元前
移動到比對的括号處(%指令)
那麼在使用 Vim 進行編輯時經常會為将光标移動到與一個"("比對的")"(對于 [] 和 {} 也是一樣的)處而感到頭疼。其實在 Vim 裡面提供了一個非常友善地査找比對括号的指令,這就是"%"
移動到指定行處(nG 或 :n 指令)
可以直接在指令模式中輸入"nG"(n 為數字,G 為大寫)或":n"(在編輯模式中輸入數字)指令将光标快速地定位到指定行的行首。這種方法對快速移動光标非常有效。
3、插入
常用的插入指令:
i:在目前光标所在位置插入随後輸入的文本,光标後的文本相應向右移動
I:在光标所在行的行首插入随後輸入的文本,行首是該行的第一個非空白字元,相當于光标移動到行首執行i指令
a:在目前光标所在位置之後插入随後輸入的文本
A:在光标所在行的行尾插入随後輸入的文本,相當于光标移動到行尾再執行a指令
o:在光标所在行的下面插入新的一行。光标停在空行首,等待輸入文本
O:在光标所在行的上面插入新的一行。光标停在空行的行首,等待輸入文本
當處于輸入模式時,右下角的狀态為如下圖所示:
當編輯完畢使用Esc指令退出輸入模式,進去指令模式,可以使用Shift+zz指令儲存退出,其他儲存和退出指令見下文
4、編輯
査找指定字元串
首先在指令模式下輸入:/char #char為需要查找的字元,在查找的過程中還以使用$^等進行比對
然後enter鍵就可以了,然後使用n,N進行下一個或者上一個查找
5、替換字元
r 替換目前光标的單個字元
R 從目前光标開始替換,esc退出
替換範圍内的字元串::替換起始處,替換結束處s/源字元串/替換的字元串/g。
替換整篇文檔的字元串::%s/源字元串/替換的字元串/g(如果不加g,則隻替換每行第一個找到的字元串)。
6、删除,複制,粘貼
x :删除目前光标字元
dd: 删除目前光标行
還可以使用指令::1,$d #表示從第一行到最後一行删除,
ndd ,表示删除目前光标接下來的n行, 例如5dd
dG : 表示删除光标到最後一行
yy:為複制
p:為粘貼
u:為撤銷上一步的操作
7、儲存和退出
字母"w":儲存不退出;
字母"q":不儲存退出;
字元"!":強制性操作;
三、其他常用設定
指令前面都要加冒号,我表示偷懶。。。
其他:
:set nu|nonu 顯示/不顯示行号
:syntax on|off 啟用/關閉文法高亮
:set hls|nohls 開啟/關閉查詢結果高亮顯示
:set ai 啟用自動縮進
:set autoindent 啟用自動縮進
:set noai 關閉自動縮進
:set tabstop=4 表示把tab鍵的寬度設為4個空格
顯示忽略或區分字元大小寫
:set ignorecase
:set ic
:set noic
查找到的文本高亮顯示或取消
:set hlsearch
:set nohlsearch
四、截圖高手(請原諒我的懶惰,畢竟時間寶貴)
這部分截圖來自鳥哥私房菜:
基礎知識其實更推薦大家看書籍,内容全面,此部落格隻是皮毛
内容豐富,有興趣的童鞋可以提取
下載下傳位址:
連結:https://pan.baidu.com/s/1qK3ZF-kBYBL_R_C2YJxhSg
提取碼:nz0n
VIM 補全:
最常用的補全方式應該是CTRL-N和CTRL-P補全了。它們會在目前緩沖區、其它緩沖區,以及目前檔案所包含的頭檔案中查找以光标前關鍵字開始的單詞。智能補全不能對局部變量進行補全,而CTRL-N和CTRL-P補全則可以很好的勝任
CTRL-P一般的含義是向上,是以CTRL-P補全是向上查找以進行補全,而CTRL-N是向下查找以進行補全,在不同場合使用不同的快捷鍵可以加速補全的速度。
vim中其它的補全方式包括:
整行補全 CTRL-X CTRL-L
根據目前檔案裡關鍵字補全 CTRL-X CTRL-N
根據字典補全 CTRL-X CTRL-K
根據同義詞字典補全 CTRL-X CTRL-T
根據頭檔案内關鍵字補全 CTRL-X CTRL-I
根據标簽補全 CTRL-X CTRL-]
補全檔案名 CTRL-X CTRL-F
補全宏定義 CTRL-X CTRL-D
補全vim指令 CTRL-X CTRL-V
使用者自定義補全方式 CTRL-X CTRL-U
拼寫建議 CTRL-X CTRL-S
參考:https://www.cnblogs.com/zsql/p/10583396.html