1. 程式人生 > >Linux中vim的三種模式以及基本命令

Linux中vim的三種模式以及基本命令

body 指定 col -s global 使用 全局 oba .com

在Linux中vim的三種模式分別為:命令模式末行模式編輯模式以下是三者的關系圖:

技術分享圖片

三種模式的彼此切換:

命令模式是vim中的默認模式。

命令模式切換至末行模式: 使用英文冒號(:)。

末行模式切換至命令模式: 按一下esc 或者 兩下esc 或者 刪除末行的全部命令。

命令模式切換至編輯模式: 按鍵 i 或者 a。

編輯模式切回命令模式: 按下esc。

其中,末行模式 和 編輯模式 之間,不能直接切換,必須切換到命令模式,再進行切換。

接下來細化到每個模式下的各種命令操作:

一、末行模式

末行模式中基本的操作有保存、另存、退出、查找、替換

  1、保存

    語法: :w (write)

    說明: 將已做的更改進行保存,主要是編輯模式操作完成之後的操作。

技術分享圖片

  2、另存

    語法: :w 文件路徑

    說明: 保存和另存命令基本相似,區別在於另存需要指定文件的保存路徑。

    技術分享圖片

  3、退出

    語法: :q(quit)

    說明: 如果不想寶座直接退出可使用(:q!), 其中!表示強制

    技術分享圖片

  4、查找

    語法: /需要查找的字符串

    說明:可使用n(向下切換)、N(向上切換),改變光標位置。查找的位置會高亮

    技術分享圖片

  5、替換

    語法: :s /被替換的字符/替換成的字符

    說明: 對當前行首次出現

的字符進行替換

    技術分享圖片

    語法: :s /被替換的字符/替換的字符/g

    說明:對當前行所有匹配的字符進行替換,g代表global

    技術分享圖片

    語法:%s /被替換的字符/替換的字符

     說明:對整個文檔每一行首次匹配的字符串進行匹配替換

    技術分享圖片

    語法: %s /被替換的字符串/替換的字符串/g

    說明: 替換整個文檔匹配上的字符

    技術分享圖片

二、命令模式

命令模式中基本的操作有光標的移動、刪除、復制

    1、光標的移動

    語法:定位到最後一行 (G)

       定位到第一行 (兩個gg)

       光標定位到指定行 (數字+G)

       光標上衣或下移 (數字+↑ 或 數字+↓)

    2、刪除

    語法:刪除當前行(dd)[行號重置]

    說明:刪除當前行下一行不上移,文檔行號會重新索引。

    語法:刪除當前行(D)[當前行置空,保留當前行號]

    說明:刪除當前行下一行不上移,刪除後當前行留空

    語法:刪除多行(數字+dd)

    說明:刪除當前光標所在下一行的n條行數,n代表所填的數字。

    註意:在vim中,刪除和剪切命令是一樣的,可用粘貼命令顯示出來。

    3、復制

    語法:復制當前行(yy)

    語法:復制多行(數字+yy)

    說明:表示復制當前行一下指定的行數

    溫馨提示:復制完成後,可用p(parse)進行粘貼,粘貼在所在行的下一行

三、編輯模式

命令模式中基本的操作有進入編輯 和 退出

    1、進入編輯

    語法:a (afterinsert)表示在光標後進行編輯插入

       i (insert) 表示在當前光標出進行編輯插入

    2、退出

    語法:使用esc即可退出 編輯模式

四、擴展

    1、行號的顯示問題

    一般情況下,vim通過在末行模式中添加:set nu命令進行行號的顯示,但這並不是

    全局的,通常在下一次打開文件時,行號會自動消失,為了便於操作,我們通常會

    修改vim的配置文件,來使得行號顯示對全局生效。

    vim的配置文件位於當前用戶的家目錄。若沒有可自行創建。文件名稱為.vimrc

    技術分享圖片

    在 當前文件輸入 "set nu", 即可實現全局行號顯示有效。

    2、異常關閉處理

    在文件沒有正常關閉的情況下,如未保存直接通過遠程窗口關閉。

    技術分享圖片

    解決此問題的方式是:刪除該文件的交換文件

    提示信息已經十分明確。交換文件.vimrc.swp在文件未被正常關閉時,自動創建。

    所以使用命令: rm -f .vimrc 即可

    註意:一般交換文件的通常格式為: 文件名.swp

     3、重做 / 撤銷

    如果想要撤銷操作,在末行模式中輸入 :u

    取消撤銷為: ctrl + r

    進行多步撤銷為: 數字 + u

    4、:wq和:x退出的方式有何區別?

     在實際開發還是建議使用:x方式退出。
     區別在於wq的方式無論文件是否有修改都會對文件的最後修改時間進行改變。
     而:x只有在文件內容真正改變時才會修改文件最後修改時間。

Linux中vim的三種模式以及基本命令