vim是Linux下簡(jiǎn)單易用的編輯軟件,我們可以使用vim來(lái)編輯文本文件,包括源代碼。
使用vim打開(kāi)文件名為filename的文件可以運(yùn)行vim filename
。
兩種模式
vim有兩種模式(大部分材料將其分為三種模式,我們?cè)谶@里將其簡(jiǎn)化為兩種便于學(xué)習(xí)),即編輯模式與命令模式。
進(jìn)入vim后的模式是命令模式,是不可輸入字符的,只有進(jìn)入了編輯模式才可以輸入字符,想要從命令模式轉(zhuǎn)入編輯模式需要輸入i
(表示Insert,插入)或者a
(表示Append,追加),然后即可在當(dāng)前光標(biāo)所在的位置輸入字符。
想要從編輯模式轉(zhuǎn)入命令模式,輸入Esc
(一般是鍵盤最左上角的鍵)即可。
在兩種模式下都可以使用上下左右鍵、home鍵與end鍵來(lái)改變光標(biāo)的位置。
編輯模式
在編輯模式下可以輸入字符,包括可打印字符(如英文字母、數(shù)字、括號(hào)、加減乘除等)、Tab、回車(Enter鍵)以添加新的空行、使用Backspace與Del鍵刪除字符等。
命令模式
在命令模式下可以輸入命令,vim支持眾多的命令(在此僅列出幾個(gè)),包括:
-
x
:刪除當(dāng)前字符 -
w
:word的縮寫,跳過(guò)當(dāng)前單詞 -
$
:跳到行尾 -
^
:跳到行首 -
%
:跳到匹配的括號(hào)處,例如從(跳到),從>跳到<等 -
dw
:delete word的縮寫,先輸入d,再輸入w,作用是刪除當(dāng)前光標(biāo)后的單詞 -
dd
:刪除當(dāng)前行 -
d$
:刪除到行尾 -
d%
:刪除到匹配括號(hào) -
d#d
:刪除從當(dāng)前行開(kāi)始的#行,例如d8d
表示刪除從當(dāng)前行開(kāi)始的8行 -
u
:undo的縮寫,即恢復(fù)上一個(gè)對(duì)文件的修改,恢復(fù)可以無(wú)限重做,一直恢復(fù)到文件最開(kāi)始打開(kāi)的狀態(tài)。例如若上一個(gè)修改是使用dw
刪除了world這個(gè)單詞,則輸入u
則會(huì)將被刪除的world單詞再恢復(fù)回來(lái) -
Ctrl-r
:redo的意思,即把上一個(gè)恢復(fù)的修改再重做回去,即先按住Ctrl鍵不放,再按r。例如若上一個(gè)修改是使用dw
刪除了world這個(gè)單詞,則輸入u
則會(huì)將被刪除的world單詞再恢復(fù)回來(lái),再輸入Ctrl-r
則會(huì)再將world刪除 -
yy
:復(fù)制當(dāng)前行 -
y#y
:從當(dāng)前行開(kāi)始復(fù)制#行,例如y12y表示從當(dāng)前行開(kāi)始復(fù)制12行 -
y%y
:從當(dāng)前行復(fù)制到匹配括號(hào)處 -
p
:即paste的縮寫,粘貼的意思,即將剪切或者復(fù)制的內(nèi)容粘貼到當(dāng)前光標(biāo)處
還有一系列以:(冒號(hào))開(kāi)始的命令,如:
-
:set nu
(:set number)的縮寫,設(shè)置行號(hào)顯示 -
:set nonu
(:set nonumber)的縮寫,隱藏行號(hào)顯示 -
:set ts=4
(:set tabspace=4)的縮寫,表示設(shè)置一個(gè)tab為4個(gè)空格的寬度 -
:$
,表示跳到最后一行 -
:#
,表示跳到第#行,例如:10表示跳到第10行 -
:w
,write的縮寫,即寫入文件,后面也可以加文件名以表示保存成新的文件名 -
:q
,quit的縮寫,即退出對(duì)當(dāng)前文件的編輯 -
:q!
,表示不保存對(duì)文件的修改直接退出 -
:wq
,表示寫入文件以后再退出 -
:%s/old-string/new-string/g
:在整個(gè)文件里查找old-string,并用new-string來(lái)代替它,在這里s表示substitue,即替換的意思,g表示globally,表示全局 - 如果想進(jìn)行整詞替換,則需要使用:
%s/\<old-string\>/new-string/g
查找字符串:
-
/word
,例如你想查找china這個(gè)字符串,則輸入/china即可 -
n
,為next的縮寫,表示繼續(xù)查找 -
*
,查找你光標(biāo)所在的單詞(以整個(gè)單詞查找,而不查找部分),也可以使用/\<word\>
來(lái)查找word
有時(shí),我們想要執(zhí)行一個(gè)命令,但是不想退出vim。則可以使用Ctrl-z
,即先按住Ctrl鍵不放,然后按z。即可暫時(shí)將vim放到后臺(tái),先切換回命令行執(zhí)行命令。例如使用g++編譯程序,運(yùn)行程序進(jìn)行測(cè)試,然后再運(yùn)行fg
(ForeGround的意思)命令把后臺(tái)的vim切換回來(lái)。
配置文件
我們時(shí)而需要將vim的一些命令固化下來(lái),對(duì)于任何文件都使用,例如在打開(kāi)任何文件的時(shí)候都顯示行號(hào),每次進(jìn)入vim后都輸入:set nu
很麻煩,則可以將對(duì)應(yīng)的命令保存到~/.vimrc
文件(即當(dāng)前用戶家目錄下的.vimrc文件)中去。
運(yùn)行vim ~/.vimrc
,然后編輯此文件,在里面寫入set nu
保存退出即可。之后每次使用vim打開(kāi)文件的時(shí)候就都會(huì)加上行號(hào)了。
在這里我們可以將~/.vimrc稱為vim的配置文件。