vi/vim

linux vi vim

vim 命令合集

基本上 vi/vim 共分為三種模式,分別是命令模式(Command mode)插入模式(Insert mode)底線命令模式(Last line mode)

vi/vim 按鍵說明

除了上面簡易范例的 i, Esc, :wq 之外,其實 vim 還有非常多的按鍵可以使用。

第一部份:一般模式可用的光標移動、復制粘貼、搜索替換等

移動光標的方法

h 或 向左箭頭鍵(←)光標向左移動一個字符

j 或 向下箭頭鍵(↓)光標向下移動一個字符

k 或 向上箭頭鍵(↑)光標向上移動一個字符

l 或 向右箭頭鍵(→)光標向右移動一個字符

如果你將右手放在鍵盤上的話,你會發現 hjkl 是排列在一起的,因此可以使用這四個按鈕來移動光標。 如果想要進行多次移動的話,例如向下移動 30 行,可以使用 "30j" 或 "30↓" 的組合按鍵, 亦即加上想要進行的次數(數字)后,按下動作即可!

[Ctrl] + [f]屏幕『向下』移動一頁,相當于 [Page Down]按鍵 (常用)

[Ctrl] + [b]屏幕『向上』移動一頁,相當于 [Page Up] 按鍵 (常用)

[Ctrl] + [d]屏幕『向下』移動半頁

[Ctrl] + [u]屏幕『向上』移動半頁

+光標移動到非空格符的下一行

-光標移動到非空格符的上一行

n那個 n 表示『數字』,例如 20 。按下數字后再按空格鍵,光標會向右移動這一行的 n 個字符。例如 20 則光標會向后面移動 20 個字符距離。

0 或功能鍵[Home]這是數字『 0 』:移動到這一行的最前面字符處 (常用)

$ 或功能鍵[End]移動到這一行的最后面字符處(常用)

H光標移動到這個屏幕的最上方那一行的第一個字符

M光標移動到這個屏幕的中央那一行的第一個字符

L光標移動到這個屏幕的最下方那一行的第一個字符

G移動到這個檔案的最后一行(常用)

nGn 為數字。移動到這個檔案的第 n 行。例如 20G 則會移動到這個檔案的第 20 行(可配合 :set nu)

gg移動到這個檔案的第一行,相當于 1G ??! (常用)

nn 為數字。光標向下移動 n 行(常用)


第二部份:一般模式切換到編輯模式的可用的按鈕說明

進入插入或取代的編輯模式

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 為止;(常用)

上面這些按鍵中,在 vi 畫面的左下角處會出現『--INSERT--』或『--REPLACE--』的字樣。 由名稱就知道該動作了吧!!特別注意的是,我們上面也提過了,你想要在檔案里面輸入字符時, 一定要在左下角處看到 INSERT 或 REPLACE 才能輸入喔!

[Esc]退出編輯模式,回到一般模式中(常用)


第三部份:一般模式切換到指令行模式的可用的按鈕說明

指令行的儲存、離開等指令

:w將編輯的數據寫入硬盤檔案中(常用)

:w!若文件屬性為『只讀』時,強制寫入該檔案。不過,到底能不能寫入, 還是跟你對該檔案的檔案權限有關?。?/p>

:q離開 vi (常用)

:q!若曾修改過檔案,又不想儲存,使用 ! 為強制離開不儲存檔案。

注意一下啊,那個驚嘆號 (!) 在 vi 當中,常常具有『強制』的意思~

:wq儲存后離開,若為 :wq! 則為強制儲存后離開 (常用)

ZZ這是大寫的 Z 喔!若檔案沒有更動,則不儲存離開,若檔案已經被更動過,則儲存后離開!

:w [filename]將編輯的數據儲存成另一個檔案(類似另存新檔)

:r [filename]在編輯的數據中,讀入另一個檔案的數據。亦即將 『filename』 這個檔案內容加到游標所在行后面

:n1,n2 w [filename]將 n1 到 n2 的內容儲存成 filename 這個檔案。

:! command暫時離開 vi 到指令行模式下執行 command 的顯示結果!例如

『:! ls /home』即可在 vi 當中察看 /home 底下以 ls 輸出的檔案信息!

vim 環境的變更

:set nu顯示行號,設定之后,會在每一行的前綴顯示該行的行號

:set nonu與 set nu 相反,為取消行號!

特別注意,在 vi/vim 中,數字是很有意義的!數字通常代表重復做幾次的意思! 也有可能是代表去到第幾個什么什么的意思。

舉例來說,要刪除 50 行,則是用 『50dd』 對吧! 數字加在動作之前,如我要向下移動 20 行呢?那就是『20j』或者是『20↓』即可。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • vi/vim是什么? 是個編輯器。 第一部分:一般模式。 移動光標的方法 h 或 向左箭頭鍵(←) 光標向左移動一...
    溺象海閱讀 242評論 0 0
  • 在Linux中使用文本編輯器來編輯你的Linux參數配置文件是一件很重要的事情,因此系統管理員至少應該熟悉一種文本...
    Zhang21閱讀 747評論 0 1
  • vi/vim是什么? Linux世界幾乎所有的配置文件都是以純文本形式存在的,而在所有的Linux發行版系統上都有...
    m2fox閱讀 1,088評論 0 2
  • 鑰匙離開了, 鎖子還在等待, 許久許久,鑰匙回來了 卻發現,再也打不開鎖了 ...
    遇見平姐閱讀 678評論 2 2
  • (一)前奏 時鐘以一個優美的舞姿定格到七點,念緩緩地睜開了雙眸,新鮮的空氣就這樣緩緩進入自己的身體里,感受著外界怡...
    夏暮Backlight閱讀 435評論 5 2