一、vim的三種命令格式
基本上 vim共分為三種模式,分別是“一般指令模式”、“編輯模式”與“命令行命令模式”。 這三種模式的作用分別是:
(1)一般指令模式 (command mode)
以 vim后加上文件路徑名字就可以打開一個文件就直接進入一般指令模式了(這是默認的模式,也簡稱為一般模式)。在這個模式中, 你可以使用“上下左右”按鍵來移動光標,你可以使用“刪除”“粘貼”等方式來編輯文件內容, 也可以使用“復制、貼上”來處理你的文件數據。
(2)編輯模式 (insert mode)
在一般指令模式中可以進行刪除、復制、貼上等等的動作,但是卻無法編輯文件內容的! 要等到你按下“i”字母鍵之后才會進入編輯模式。注意了!通常在Linux 中,按下“i”按鍵后,在畫面的左下方會出現“ INSERT ”的字樣,此時才可以進行編輯。而如果要回到一般指令模式時, 則必須要按下“Esc”這個按鍵即可退出編輯模式。
(2)命令行命令模式 (command-line mode)
在一般模式當中,輸入“shift+ : / ? ”三個中的任何一個按鈕,就可以將光標移動到最下面那一列。在命令模式中可以執行一些輸入并執行一些vim或插件提供的指令,就像在shell里一樣。這些指令包括設置環境、文件操作、調用某個功能等等。
二、簡易的執行范例
1、直接輸入file的名字就能進入文件的一般指令模式
vim filename
2、按下 i 進入編輯模式,開始編輯文字
在編輯模式當中,當你發現在左下角狀態列中出現 –INSERT-時,你就可以編輯了。這個時候你可以輸入除了 [ESC]之外的任何字符。
3、按下 [ESC] 按鈕回到一般指令模式
當你按下 [ESC]按鍵之后,你會發現左下角的–INSERT-消失了,這個時候你就是進入了一般命令模式,當讓當你不確定的時候,可以多按兩下。
4、進入命令行界面,文件保存并離開 vim環境
當你想要退出編輯并保存的時候你需要長按[shift]按鍵的同時按下“:”按鍵,然后輸入“wq”就可以了。但是你學要注意的權限問題當文件沒有“w”權限的時候作為除“root”用戶外沒有任何用戶可以編輯的。
三、vim編輯下的按鍵說明
一般按鍵模式
按鍵 | 效果 |
---|---|
h 或 向左方向鍵(↑) | 光標向上移動一個字符 |
j 或 向下方向鍵(↓) | 光標向下移動一個字符 |
k 或 向上方向鍵(←) | 光標向左移動一個字符 |
l 或 向右方向鍵(→) | 光標向右移動一個字符 |
[Ctrl] + [f] | 屏幕“向下”移動一頁,相當于 [Page Down]按鍵 |
[Ctrl] + [b] | 屏幕“向上”移動一頁,相當于 [Page Up] 按鍵 |
[Ctrl] + [d] | 屏幕“向下”移動半頁 |
[Ctrl] + [u] | 屏幕“向上”移動半頁 |
+ | 光標移動到非空白字符的下一行 |
- | 光標移動到非空白字符的上一行 |
H | 光標移動到這個屏幕的最上方那一列的第一個字符 |
M | 光標移動到這個屏幕的中央那一列的第一個字符 |
L | 光標移動到這個屏幕的最下方那一列的第一個字符 |
G | 移動到這個文件的最后一行 |
gg | 移動到這個文件的第一行 |
/word | 以光標所在位置向下尋找word的字符串 |
?word | 以光標所在位置向上尋找word的字符串 |
x, X | 在一列字當中,x 為向后刪除一個字符 (相當于 [del] 按鍵), X 為向前刪除一個字符(相當于 [backspace] 亦即是倒退鍵) |
nx | n 為數字,連續向后刪除 n 個字符。舉例來說,我要連續刪除 3個字符, “3x”。dd刪除光標所在的那一整行 |
ndd | n 為數字。刪除光標所在的向下 n 行,例如3dd 則是刪除 3行 |
dnG | n 為數字。刪除光標所在到第n行的所有數據 |
yy | 復制光標所在的那一行 |
p, P | p 為將已復制的數據在光標下一行貼上,P 則為貼在光標上一行! |
c | 重復刪除多個數據,例如向下刪除 3列,[3cj ] |
. | 重復前一個動作 |
一般指令模式切換到編輯模式的可用的按鈕
按鍵 | 效果 |
---|---|
i, I | 進入插入模式(Insert mode):i為“從目前光標所在處插入”, I為“在目前所在行的第一個非空白字符處開始插入”。 |
a, A | 進入插入模式(Insert mode):a為“從目前光標所在的下一個字符處開始插入”, A 為“從光標所在行的最后一個字符處開始插入”。 |
o, O | 進入插入模式(Insert mode):這是英文字母 o 的大小寫。o為“在目前光標所在的下一列處插入新的一行”; O 為在目前光標所在處的上一行插入新的一行! |
r, R | 進入取代模式(Replacemode):r 只會取代光標所在的那一個字符一次;R會一直取代光標所在的文字,直到按下 ESC 為止 |
[Esc] | 退出編輯模式,回到一般指令模式中 |
一般指令模式切換到命令行界面的按鈕
按鍵 | 效果 |
---|---|
:w | 將編輯的數據寫入硬盤文件中 |
:w! | 若文件屬性為“只讀”時,強制寫入該文件。不過,到底能不能寫入, 還是跟你對該文件的文件權限有關。 |
:q | 離開 vim |
:q! | 若曾修改過文件,又不想儲存,使用 ! 為強制離開不保存。 |
:wq | 保存后離開,若為 :wq! 則為強制保存后離開。 |
ZZ | 大寫的 Z!若文件沒有更動,則不保存離開,若文件已經被更動過,則保存后退出。 |
:w [filename] | 將編輯的文件保存成另一個文件(新文件) |
:r [filename] | 在編輯的數據中,讀入另一個文件的數據。把“filename” 這個文件內容加到光標所在行后面。 |
:! command | 暫時離開 vim到命令行界面下執行 command 的顯示結果!例如 “:! ls /home/”即可在 vim 當中察看 /home/ 下面以ls 輸出的文件信息。 |
:set nu | 顯示行號,設置之后,會在每一列的字首顯示該列的行號。 |
:set nonu | 與 set nu 相反,為取消行號。 |
四、對于vim警告信息的介紹
[O]pen Read-Only:
打開此文件成為只讀文件, 可以用在你只是想要查閱該文件內容并不想要進行編輯行為時。一般來說, 當你發現其他人也在編輯的時候,你可以使用這個模式;
(E)dit anyway:
用正常的方式打開你要編輯的那個文件, 并不會載入緩存的內容。不過很容易出現兩個使用者互相改變對方的文件等問題!不建議使用。
(R)ecover:
就是載入緩存的內容,用在你要救回之前未儲存的工作。 不過當你救回來并且儲存離開 vim 后,還是要手動自行刪除那個緩存。
(D)elete it:
確定那個緩存是無用的!那么打開文件前會先將這個暫存盤刪除!這個動作其實是比較常做的!因為你可能不確定這個暫存盤是怎么來的,所以就刪除掉。
(Q)uit:
按下 q 就離開 vim ,不會進行任何動作回到命令提示字符。
(A)bort:
忽略這個編輯行為,與 quit 非常類似!