Linux vi / vim 基本操作

作者:Gakki

vi / vim 的基本概念

  • 什么是 vi,vi 即終端中的一款編輯器。
  • 在很多 Linux 發(fā)行版中,直接把 vi 做成 vim 的軟鏈接。vim 即 vi improved,是從 vi 發(fā)展來的一個文本編輯器。支持代碼補全、編譯、錯誤跳轉(zhuǎn)等多項功能,被稱之為 " 編輯器之神 "。
  • vi / vim 沒有圖形界面,只能編輯文本內(nèi)容,不支持鼠標(biāo)操作,沒有菜單,只有命令。
  • 基本上 vi / vim 共分為三種模式,分別為命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)。

命令模式(Command mode)

命令模式(Command mode):控制屏幕光標(biāo)的移動,字符、字或行的刪除,移動復(fù)制某區(qū)段及進(jìn)入輸入模式(Insert mode)或底線命令模式(Last line mode)。

  • 當(dāng)我們啟動 vi/vim 命令時,如 vim test.txt,便進(jìn)入命令模式。在此狀態(tài)下,敲擊鍵盤動作會被 Vim 識別為命令,而非輸入字符。如當(dāng)我們按下 i ,并不要輸入 i 字符,而是會被當(dāng)作命令。在命令模式中,常用的幾個命令有:
    • i:切換到輸入模式,以輸入字符。
    • x:刪除當(dāng)前光標(biāo)所在處的字符。
    • :(英文冒號):切換到底線命令模式,在最底一行輸入命令。

輸入模式(Insert mode)

輸入模式(Insert mode):只有在輸入模式(Insert mode)下,才可以進(jìn)行文字輸入。在命令模式中按下 i 就進(jìn)入輸入模式;按 [ ESC ] 鍵可回到命令行模式。在輸入模式中,可以使用以下按鍵:

  • 字符按鍵以及Shift組合:輸入字符
  • ENTER:回車鍵,換行
  • BACK SPACE:退格鍵,刪除光標(biāo)前一個字符
  • DEL:刪除鍵,刪除光標(biāo)后一個字符
  • 方向鍵:在文本中移動光標(biāo)
  • HOME/END:移動光標(biāo)到行首/行尾
  • Page Up/Page Down:上/下翻頁
  • Insert:切換光標(biāo)為輸入/替換模式,光標(biāo)將變成豎線/下劃線
  • ESC:退出輸入模式,切換到命令模式

底線命令模式(Last line mode)

底線命令模式(Last line mode):在命令模式下按下 :(英文冒號)就進(jìn)入底線命令模式;按 [ ESC ] 鍵可回到命令行模式。在底線命令模式中,基本命令有:

命令 功能
w (write)保存文件
q (quit)退出程序
q! (quit)不保存強制退出 vi
wq (write&quit)保存并退出 vi

vi / vim 使用實例

1. 進(jìn)入命令模式
  • 輸入 vi 文件名稱,就進(jìn)入 vi 全屏編輯畫面
  • 如:vi test.txt
    vi test.txt

注:

  • 如果沒有 text.txt 文件,會自動創(chuàng)建一個 text.txt 文件。
  • 現(xiàn)在是處于命令模式。需要按下i或者a或者o 等字符切換到輸入模式才可以輸入文字。
2. 進(jìn)入輸入模式
  • 進(jìn)入命令模式之后,按下i或者a或者o 等字符即可進(jìn)入輸入模式。在輸入模式中,你可以發(fā)現(xiàn)在左下角有個 --INSERT--,這表示當(dāng)前可輸入字符了。
    進(jìn)入輸入模式

    注:
  • 按下 [ESC] 建可回到命令模式。
3. 進(jìn)入底線命令模式
  • 當(dāng)我們寫完之后需要保存或者是不保存退出 vi。只需要先在輸入模式中按下[ESC] 建回到命令模式,然后輸入: 切換到底線命令模式。最后在輸入命令即可。
  • 如:輸入 wq(保存并退出 vi)或 q(不保存直接退出 vi)或 q!(不保存強制退出 vi)
    退出 vi 模式
4. 其他
  • 底線命令模式中可用的命令說明
命令 功能
w (write)保存文件(常用
w! 若文件屬性為 [只讀] 時,強制寫入該文檔。但具體能否寫入,需要看該文檔的權(quán)限。
q (quit)退出程序
q! (quit)不保存強制退出 vi
wq (write&quit)保存并退出 vi
w [file1] 將編輯的數(shù)據(jù)另存為 file1
r [file1 在編輯的數(shù)據(jù)中,讀取 file1 的數(shù)據(jù)。也就是將 file1 文檔里的內(nèi)容加到游標(biāo)所在行后面
n1,n2 w [file1] 將 n1 到 n2 的內(nèi)存存儲到 file1 文件里。
:! command 暫時離開 vi 到底線命令模式下執(zhí)行 command 的顯示結(jié)果。如::! ls /home即在 vi 模式中察看 /home 中執(zhí)行 ls

注: ! 在 vi 當(dāng)中,常常具有 [強制] 的意思。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容