vi 共分為三種模式,分別是【一般指令模式】、【編輯模式】、【指令列命令模式】
一般指令模式(command mode)
以 vi 打開一個文件就直接進入一般指令模式了。
在一般指令模式中,可以使用 上下左右 鍵來移動光標,可以使用 刪除字符 或 刪除整列 來處理文件內容,可以 複製、粘貼 來處理文件內容。
編輯模式(insert mode)
等按下 i I o O a A r R等任何一個字母之後才會進入編輯模式。
在按下這些按鍵時,窗口左下方會出現 INSERT 或 REPLACE 的字樣,表示進入編輯模式。
按 Esc 按鍵可以退出編輯模式。
指令列命令模式(command-line mode)
在一般模式當中,輸入 : / ? 三個中的任何一個後,就可以將光標移動到窗體最下面一行,表示進入命令模式。
在命令模式中,可以完成 讀取、保存、離開、顯示行號 等操作。
注意:編輯模式 與 命令模式 之間不能直接切換,需要先切換到一般指令模式。
直接輸入 /bin/vi XXX 就能夠進入 vi 的一般指令模式
按 i 可以進入編輯模式
按 Esc 回到一般指令模式
:wq 保存並退出(以 :開頭)
:wq! 強制保存並退出(以 !結尾)
h 左 j 下 k 上 l 右 這四個字母 和 方向鍵 可以移動光標位置
向下 30列 可以使用 30j 或 30下 的組合鍵
Ctrl + f 向下一頁
Ctrl + b 向上一頁
Ctrl + d 向下半頁
Ctrl + u 向上半頁
+ 移動到非空格符的下一列
- 移動到非空格符的上一列
n空格 n表示數字,光標會向右移動 n個字符的距離
0 或 Home (數字0) 會移動到這一列的最前面字符
$ 或 End 會移動到這一列的最後面字符
H 移動到屏幕最上方那一列的第一個字符
M 移動到屏幕中央那一列的第一個字符
L 移動到屏幕最下方那一列的第一個字符
G 移動到這個文件的最後一列
nG 移動到這個文件的第 n 列,n 為數字
gg 移動到這個文件的第一列,相當於 1g
n回車 光標向下移動 n 列,n 為數字
接下來截圖示意:
在使用 vim 編輯一個文件時, vim 會在被編輯的文件的目錄下,再建立一個名為 .filename.swp 的文件,它可以作為恢復文件使用。
如果打開文件時,vim 發現了 名為 .filename.swp 的文件,會彈出一個提示,在提示裏有六個選項,説明如下:
O Open Read-Only 只讀模式
E Edit anyway 正常讀寫模式,可能發生多人對同一文件同時寫入的情況
R Recover 讀取恢復文件內容
D Delete it 刪除這個恢復文件
Q Quit 離開 vim 回到命令提示符界面
A Abort 忽略這個編輯行為,與 Quit 一樣,會回到命令提示符界面
如果在編輯界面的右下角,能顯示光標所在的行列號碼,那就表示系統的 vi 被 vim 替代了,可以輸入 alias 查看
vi 與 vim 的用法是一樣的,vim 只是多了顏色提示、行列位置
如果要使用區塊編輯模式,先把光標移到區塊的左上角,按 v 後左下角會出現 VISUAL BLOCK 字樣,將光標移動時,光標移過的區域就會反白
然後按 y 可以複製區塊, d 可以刪除區塊, p 可以粘貼區塊。
vim 可以同時編輯多個文件,當需要把文件一中的內容複製到文件二時會特別有用
舉例如下:
補齊操作與文件擴展名相關
在 vim 的操作都會記錄到 ~/.vimrc ~/.viminfo 文件中來,這樣一來,選中的文字在下次打開文件時,仍是選中狀態。
這個文件如果不存在,可以手動建立 vim ~/.vimrc
整體 vim 的設定值一般是放在 /etc/vimrc 這個文件,不建議修改這個文件