第一次使用vim,啥都不懂,輸入也不能輸入,退出也不會退出,特別的尷尬。。。。后來慢慢的接觸學習,發現vim真的挺好用的,不過上手有點慢,多用就對了,用多了我相信你也會喜歡這個文本編輯工具的。
vi/vim 的使用
1、命令模式:
使用 Vim 編輯文件時,默認處於命令模式。在此模式下,可以使用上、下、左、右鍵或者 k、j、h、l 命令進行光標移動,還可以對文件內容進行復制、粘貼、替換、刪除等操作。
2、輸入模式:
在輸入模式下可以對文件執行寫操作,類似在 Windows 的文檔中輸入內容。進入輸入模式的方法是輸入 i、a、o 等插入命令,編寫完成后按 Esc 鍵即可返回命令模式。
在輸入模式中,可以使用以下按鍵:
字符按鍵以及Shift組合,輸入字符 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 補全:
參考:https://www.cnblogs.com/zsql/p/10583396.html