切換不同的模式
vim一共有4個模式
- 正常模式(Normal-mode)
啟動vim后默認處于正常模式.不論位于什么模式,按下<ESC>鍵(有時需要按兩下)都會進入正常模式. - 插入模式(Insert-mode)
在正常模式下按下i,l,a,A等鍵,會進入插入模式.現在只用記住按i鍵會進行插入模式.在插入模式中,擊鍵時會寫入相應的字符. - 命令模式(Command-mode)
在正常模式中,按下:(英語冒號)鍵,會進入命令模式.在命令模式中可以執行一些輸入并執行一些vim或插件提供的指令,就像在shell里一樣.這些指令包括設置環境,文件操作,調用某個功能等等.
常用的命令有:- q退出
- q!強制退出
- w保存
- wq保存并退出
- 可視模式(Visual-mode)
在正常模式中按下v,V,<Ctrl>+v,可以進入可視模式.可視模式中的操作有點像拿鼠標進行操作,選擇文本的時候有一種鼠標選擇的既視感,有時候會很方便.
插入
操作鍵 | 說明 |
---|---|
i | 在當前光標位置前插入數據 |
a | 在當前光標位置后插入數據 |
I | 在當前行開頭處插入數據 |
A | 在當前行末尾處插入數據 |
o | 在當前行下面出入一行 |
O | 在當前行上面插入一行 |
刪除/刪除行
- 字符刪除
- x 刪除光標所在字符
- X 刪除光標所在前字符
- 單詞刪除
- dw 刪除到下一個單詞開頭
- de 刪除到本單詞末尾
- dE 刪除到本單詞末尾包括標點在內
- db 刪除到前一個單詞
- dB 刪除到前一個單詞包括標點在內
- 行刪除
- dd 刪除一整行
- D d$ 刪除光標位置到本行結尾
- d0 刪除光標位置到本行開頭
跳轉行
命令模式下輸入(n為指定的行號):
- ngg/nG
- :n
- vim + n filename(注意這里要輸入+號)
三者的區別在于,ngg/nG輸入以后不需要按下回車鍵,而輸入:n之后還有按下回車鍵才會跳轉,vim + n filename 只能在打開文件時跳轉到相應的行.
比如想跳轉到文本的第12行,可以執行如下命令:
- 12gg/12G
- :12
- 打開文件時輸入vim + 12 filename
保存
- 在正常模式中,連按兩次大寫字母Z,若當前編輯的文件曾被修改過,則vi保存該文件后退出,返回到shell;若當前編輯的文件沒被修改過,則vi直接退出,返回到shell
- 在命令模式下,輸入命令
:w
vi保存當前編輯文件,但并不退出,而是繼續等待用戶輸入命令.
在使用w命令時,可以再給編輯文件起一個新的文件名,
:w newfile
此時vi將把當前文件的內容保存到指定的newfile中,而原有文件保存不變.若newfile是一個已存在的文件,則vi在顯示窗口的狀態行給出提示信息;
此時,若用戶真的希望用文件的當前內容替換newfile中原有內容,可使用命令
:w! newfile
否則可選擇另外的文件名來保存當前文件 - 在命令模式下,輸入命令
:q
系統退出vi返回到shell.若在用此命令退出vi時,編輯文件沒有被保存,則vi在顯示窗口的最末行顯示提示信息,提示用戶該文件被修改后沒有保存,然后vi并不退出,繼續等待用戶命令.若用戶就是不想保存被修改后的文件而要強行退出vi時,可使用命令
q!
vi放棄所作修改而直接退出shell下 - 在命令模式下,輸入命令
:wq
vi將先保存文件,然后退出vi返回到shell - 命令模式下,輸入命令
:x
該命令的功能同命令模式下的ZZ命令功能相同