1. 程式人生 > 實用技巧 >Linux下 Vim的使用方法

Linux下 Vim的使用方法

Vim的使用方法

注:Vim是從 vi 發展出來的一個文字編輯器。程式碼補完、編譯及錯誤跳轉等方便程式設計的功能特別豐富,在程式設計師中被廣泛使用。

簡單的來說, vi 是老式的字處理器,不過功能已經很齊全了,但是還是有可以進步的地方。 vim 則可以說是程式開發者的一項很好用 的工具。

vim 具有程式編輯的能力,可以主動的以字型顏色辨別語法的正確性,方便程式設計。

Vim經常使用在修改配置檔案,為了方便查詢也為了加深的記憶,便寫了這篇“Vim的使用方法”,作為存檔也方便與我一樣的菜鳥學習,慢慢的成為一隻老鳥。j_0003.gif



基本上 vi 共分為三種模式,分別是一般模式編輯模式指令列命令模式

』三種!

  • 一般模式:以 vi 處理一個檔案的時後,一進入該檔案就是一般模式了。在這個模式中,你可以使用『上下左右』按鍵來移動游標,您可以使用『刪除字元』或『刪除整行』來處理檔案內容,也可以使用『複製、貼上』來處理您的檔案資料。

  • 編輯模式:在一般模式中可以處理刪除、複製、貼上等等的動作,但是卻無法編輯的!要等到您按下『i, I, o, O, a, A, r, R』等字母之後才會進入編輯模式。注意了!通常在 Linux 中,按下上述的字母時,在畫面的左下方會出現『 INSERT 或 REPLACE 』的字樣,才可以輸入任何字來輸入到您的檔案中!而如果要回到一般模式時,則必須要按下『Esc』這個按鍵即可退出編輯模式。

  • 指令列命令模式:在一般模式當中,輸入『 : 或 / 』就可以將游標移動到最底下那一行,在這個模式當中,可以提供您『搜尋資料』的動作,而讀取、存檔、大量取代字元、離開 vi 、顯示行號 等等的動作則是在此模式中達成的!


簡單的說,我們可以將這三個模式想成底下的圖示來表示之:
vim_model.png

下面是在各位模式中的操作方法:
一般模式:移動游標
h 或 向左方向鍵
游標向左移動一個字元
j 或 向下方向鍵
游標向下移動一個字元
k 或 向上方向鍵
游標向上移動一個字元
l 或 向右方向鍵
游標向右移動一個字元
[Ctrl] + [f]
螢幕『向前』移動一頁常用
[Ctrl] + [b]
螢幕『向後』移動一頁常用
[Ctrl] + [d]
螢幕『向前』移動半頁
[Ctrl] + [u]
螢幕『向後』移動半頁
+
游標移動到非空格符的下一列
-
游標移動到非空格符的上一列
n<space>
按下數字後再按空格鍵,游標會向右移動這一行的 n 個字元。例如 20<space> 則游標會向後面移動 20 個字元距離。
0
這是數字『 0 』:移動到這一行的最前面字元處常用
$
移動到這一行的最後面字元處常用
H
游標移動到這個螢幕的最上方那一行
M
游標移動到這個螢幕的中央那一行
L
游標移動到這個螢幕的最下方那一行
G
移動到這個檔案的最後一行常用
nG
移動到這個檔案的第 n 行。例如 20G 則會移動到這個檔案的 20 行(可配合 :set nu)
n<Enter>
游標向下移動 n 行常用
一般模式:搜尋與取代
/word
向光標之後尋找一個字串名稱為 word 的字串。常用
?word
向光標之前尋找一個字串名稱為 word 的字串。
:n1,n2s/word1/word2/g
在第 n1 與 n2 行之間尋找 word1 這個字串,並將該字串取代為 word2 !常用
:1,$s/word1/word2/g
從第一行到最後一行尋找 word1 字串,並將該字串取代為 word2 !常用
:1,$s/word1/word2/gc
從第一行到最後一行尋找 word1 字串,並將該字串取代為 word2 !且在取代前顯示提示字元給使用者確認(conform)是否需要取代!(常用
一般模式:刪除、複製與貼上
x, X
x 為向後刪除一個字元, X 為向前刪除一個字元常用
nx
向後刪除 n 個字元
dd
刪除遊標所在的那一整列常用
ndd
刪除游標所在的向下 n 列,例如 20dd 則是刪除 20 列常用
d1G
刪除遊標所在到第一行的所有資料
dG
刪除遊標所在到最後一行的所有資料
yy
複製遊標所在的那一行常用
nyy
複製游標所在的向下 n 列,例如 20yy 則是複製 20 列常用
y1G
複製遊標所在列到第一列的所有資料
yG
複製遊標所在列到最後一列的所有資料
p, P
p 為複製的資料在游標下一行貼上,P 則為貼在遊標上一行!常用
J
將游標所在列與下一列的資料結合成同一列
c
重複刪除多個數據,例如向下刪除 10 行,[ 10cj ]
u
復原前一個動作。常用
進入編輯模式
i, I
插入:在目前的游標所在處插入輸入之文字,已存在的文字會向後退;(常用
a, A
增加:由目前游標所在的下一個字開始輸入,已存在的文字會向後退:(常用
o, O
插入新的一行:從游標所在的下一行枝行首開始輸入文字;(常用
r, R
取代:r 會取代游標所在的那一個字元;R會一直取代游標所在的文字,直到按下 ESC 為止;(常用
Esc
退出編輯模式,回到一般模式中常用
指令列命令模式
:w
將編輯的資料寫入硬碟檔案中常用
:w!
若檔案屬性為『只讀』時,強制寫入該檔案
:q
離開 vi 常用
:q!
若曾修改過檔案,又不想儲存,使用 ! 為強制離開不儲存檔案。
:wq
儲存後離開,若為 :wq! 則為強制儲存後離開常用
:e!
將檔案還原到最原始的狀態!
ZZ
若檔案沒有更動,則不儲存離開,若檔案已經經過更動,則儲存後離開!
:w [filename]
將編輯的資料儲存成另一個檔案(類似另存新檔)
:r [filename]
在編輯的資料中,讀入另一個檔案的資料。亦即將 『filename』這個檔案內容加到遊標所在行後面
:set nu
顯示行號,設定之後,會在每一行的字首顯示該行的行號
:set nonu
與 set nu 相反,為取消行號!
n1,n2 w [filename]
將 n1 到 n2 的內容儲存成 filename 這個檔案。
:! command
暫時離開 vi 到指令列模式下執行 command 的顯示結果!例如[ :! ls /home ]

OK!會這些指令就已經很厲害了,因為常用到的指令也只有不到一半!通常 vi 的指令除了上面 VBird 註明的常用的幾個外,其它是不用背的,你可以做一張簡單的指令表在你的螢幕牆上,一有疑問可以馬上的查詢呦~


轉載於:https://blog.51cto.com/xiaohei61/1656161