Linux中vim的三種模式以及基本命令
在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的三種模式以及基本命令