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