《永劫無間》天海章魚哥捏臉資料分享
Vim 編輯器
什麼是Vim編輯器
im 通過一些外掛可以實現和IDE一樣的功能!
Vim是從 vi 發展出來的一個文字編輯器。程式碼補完、編譯及錯誤跳轉等方便程式設計的功能特別豐富,在程式設計師中被廣泛使用。尤其是Linux中,必須要會使用Vim(檢視內容,編輯內容,儲存內容!)
簡單的來說, vi 是老式的字處理器,不過功能已經很齊全了,但是還是有可以進步的地方。
vim 則可以說是程式開發者的一項很好用的工具。
所有的 Unix Like 系統都會內建 vi 文書編輯器,其他的文書編輯器則不一定會存在。
連 vim 的官方網站 (http://www.vim.org) 自己也說 vim 是一個程式開發工具而不是文書處理軟體。
vim 鍵盤圖:
4.3.2、三種使用模式
基本上 vi/vim 共分為三種模式,分別是命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)。這三種模式的作用分別是:
-
命令模式:使用者剛剛啟動 vi/vim,便進入了命令模式。
新建一個檔案:# vim saxon.txt
此狀態下敲擊鍵盤動作會被Vim識別為命令,而非輸入字元。比如我們此時按下i,並不會輸入一個字元,i被當作了一個命令。
以下是常用的幾個命令:
- i 切換到輸入模式,以輸入字元。
- x 刪除當前游標所在處的字元。
- : 切換到底線命令模式,以在最底一行輸入命令。 如果是編輯模式,需要先退出編輯模式!ESC
若想要編輯文字:啟動Vim,進入了命令模式,按下i,切換到輸入模式。
命令模式只有一些最基本的命令,因此仍要依靠底線命令模式輸入更多命令。
-
輸入模式:在命令模式下按下
i
就進入了輸入模式。在輸入模式中,可以使用以下按鍵:
- 字元按鍵以及Shift組合,輸入字元
- ENTER,回車鍵,換行
- BACK SPACE,退格鍵,刪除游標前一個字元
- DEL,刪除鍵,刪除游標後一個字元
- 方向鍵,在文字中移動游標
- HOME/END,移動游標到行首/行尾
- Page Up/Page Down,上/下翻頁
- Insert,切換游標為輸入/替換模式,游標將變成豎線/下劃線
- ESC,退出輸入模式,切換到命令模式
-
底線命令模式
些底線命令了!底線命令模式可以輸入單個或多個字元的命令,可用的命令非常多。
在底線命令模式中,基本的命令有(已經省略了冒號):wq
- q 退出程式
- w 儲存檔案
按ESC鍵可隨時退出底線命令模式。
簡單的說,我們可以將這三個模式想成底下的圖示來表示:
簡單的說,我們可以將這三個模式想成底下的圖示來表示:
4.3.3、完整的演示說明
新建或者編輯檔案,按 i 進入編輯模式,編寫內容,編寫完成後退出編輯模式,esc,退出之後進入底線命令模式 : wq 儲存退出!
4.3.4、Vim 按鍵說明
除了上面簡易範例的 i, Esc, :wq 之外,其實 vim 還有非常多的按鍵可以使用。
第一部分:一般模式可用的游標移動、複製貼上、搜尋替換等
按鍵 | 說明 |
---|---|
h 或向左方向鍵(←) | 遊標向左移動一個字元 |
j 或向下方向鍵 (↓) | 遊標向下移動一個字元 |
k 或向上方向鍵 (↑) | 遊標向上移動一個字元 |
l 或向右方向鍵 (→) | 遊標向右移動一個字元 |
[ctrl]+[f] | 螢幕向下移動一頁,相當於[Page Down](常用) |
[ctrl]+[b] | 螢幕向上移動一頁,相當於[Page Up](常用) |
[ctrl]+[d] | 螢幕向下移動半頁 |
[ctrl]+[u] | 螢幕向上移動半頁 |
數字+[Space] | n 表示數字,按下數字後再按空格鍵,遊標會向右移動到這一行的第 n 個字元。 |
功能鍵[Home]或 0 | 遊標移動到這一行的第一個字元處 |
功能鍵[End]或 $ | 遊標移動到這一行的最後一個字元處 (常用) |
H | 遊標移動到這個螢幕最上方那一行的第一個字元 |
M | 遊標移動到這個螢幕中央那一行的第一個字元 |
L | 遊標移動到這個螢幕最下方那一行的第一個字元 |
G | 遊標移動到這個檔案的最後一行 (常用) |
nG | n 為數字。遊標移動到這個檔案的第 n 行 |
gg | 遊標移動到這個檔案的第一行 (常用) |
數字+[Enter] | n 為數字。遊標向下移動 n 行 (常用) |
替換搜尋 | |
---|---|
/word | 向光標之下尋找一個名稱為 word 的字串。例如要在檔案內搜尋 vbird 這個字串,就輸入 /vbird 即可!(常用) |
?word | 向光標之上尋找一個字串名稱為 word 的字串。 |
n | 這個 n 是英文按鍵。代表重複前一個搜尋的動作。舉例來說, 如果剛剛我們執行 /vbird去向下搜尋 vbird 這個字串,則按下 n 後,會向下繼續搜尋下一個名稱為 vbird 的字串。如果是執行 ?vbird 的話,那麼按下 n 則會向上繼續搜尋名稱為 vbird 的字串! |
N | 這個 N 是英文按鍵。與 n 剛好相反,為『反向』進行前一個搜尋動作。例如 /vbird後,按下 N 則表示『向上』搜尋 vbird 。 |
按鍵 | 說明 |
---|---|
[Del] 或 x | 向後刪除一個字元 (常用) |
X | 向前刪除一個字元 (常用) |
nx | n 為數字,連續向後刪除 n 個字元。舉例來說,我要連續刪除 10 個字元, 『10x』。 |
dd | 刪除遊標所在的那一行 (常用) |
ndd | n 為數字,刪除遊標所在的那一行往下數 的 n 個行,例如 20dd 則是刪除 20 行 (常用) |
d1G | 刪除遊標所在的那行到第一行的所有資料 |
dG | 刪除遊標所在的那行到最後一行的所有資料 |
d$ | 刪除遊標所在處到該行的最後一個字元 |
d0 | 是數字 0,刪除遊標所在處到該行的第一個字元 |
yy | 複製遊標所在的那一行 (常用) |
nyy | n 為數字, 複製遊標所在的那一行往下數 n 行 (常用) |
y1G | 複製遊標所在行到第一行的所有資料 |
yG | 複製遊標所在行到最後一行的所有資料 |
y0 | 複製遊標所在的字元到該行行首的所有資料 |
y$ | 複製遊標所在的字元到該行行尾的所有資料 |
p | 將已複製的資料貼上在遊標所在的那一行的下一行 (常用) |
P | 將已複製的資料貼上在遊標所在的那一行的上一行,原來遊標所在的那一行會被推後一行 (常用) |
J | 將遊標所在的行與下一行的資料合併為一行 |
u | 復原前一個動作(常用) |
[ctrl]+r | 重做上一個被撤銷的操作 (常用) |
. | 這是小數點,表示重複前一個操作 (常用) |
第二部分:一般模式切換到編輯模式的可用的按鈕說明
進入輸入或取代的編輯模式 | |
---|---|
i, I | 進入輸入模式(Insert mode):i 為『從目前游標所在處輸入』, I 為『在目前所在行的第一個非空格符處開始輸入』。(常用) |
a, A | 進入輸入模式(Insert mode):a 為『從目前游標所在的下一個字元處開始輸入』,A 為『從游標所在行的最後一個字元處開始輸入』。(常用) |
o, O | 進入輸入模式(Insert mode):這是英文字母 o 的大小寫。o 為『在目前游標所在的下一行處輸入新的一行』;O 為在目前游標所在處的上一行輸入新的一行!(常用) |
r, R | 進入取代模式(Replace mode):r 只會取代游標所在的那一個字元一次;R會一直取代游標所在的文字,直到按下 ESC 為止;(常用) |
[Esc] | 退出編輯模式,回到一般模式中(常用) |
第三部分:一般模式切換到指令行模式的可用的按鈕說明
按鍵 | 說明 |
---|---|
:w | 將編輯的檔案寫入硬碟 (常用) |
:w! | 若檔案屬性為『只讀』時,強制寫入該檔案。不過,到底能不能寫入, 還是跟你對該檔案的檔案許可權有關啊! |
:q | 離開 vi (常用) |
:q! | 若曾修改過檔案,又不想儲存,使用 ! 為強制離開不儲存檔案。注意一下,那個驚歎號 (!) 在vi 當中,常常具有『強制』的意思 |
:wq | 檔案寫入硬碟後(即儲存)離開 vi (常用) |
:wq! | 檔案強制寫入硬碟後(即儲存)離開 vi |
ZZ | 大寫字母 Z,如果檔案沒有修改,則直接離開;如果檔案被修改,則儲存後離開 |
:w [filename] | 將當前檔案另存為另一個檔案,這個新檔案的儲存路徑為當前路徑 |
:r [filename] | 在當前檔案中讀入另一個檔案的資料,插入到當前遊標所在列的後面 |
:n1,n2 w [filename] | 將第 n1 行到第 n2 行的資料儲存為新的檔案 |
:! command | 暫時離開 vi 到指令列模式下執行 command 的顯示結果。例如『:! ls /home』即可在 vi 當中看 /home 底下以 ls 輸出的檔案資訊! |
:set nu 設定行號,程式碼中經常會使用! | 顯示行號,設定之後,會在每一行的字首顯示該行的行號 |
:set nonu | 與 set nu 相反,為取消行號! |
以上標註的掌握熟練即可,其與的瞭解或者自己測一測即可,我們平時使用VIM 最多的就是修改下檔案內容而已!