Vim 編輯器


vim 編輯器

初學(xué) vi/vim,應(yīng)該通過學(xué)習(xí)附屬 vim 安裝的 vimtutor (或 vimtutor zh)來對 vim 各方面有個初步的了解坷虑。

以下節(jié)選可在較多環(huán)境下使用的功能伺绽,應(yīng)該根據(jù)自己的需求做相應(yīng)的整理养泡。

Vim 的幾種模式

普通模式:可以使用操作符、快捷鍵命令憔恳。在其它模式下按 ESC 可以返回普通模式瓤荔。
底部命令模式:可在普通模式下按冒號(:)進(jìn)入,以執(zhí)行命令或臨時配置 vim钥组。
替換模式:在普通模式下输硝,按 R 等進(jìn)入。
插入模式:在普通模式下程梦,按 i 等進(jìn)入点把。
可視模式:在普通模式下,按 v 等進(jìn)入屿附,以區(qū)塊高亮選擇文本郎逃。

普通模式(Normal mode)

光標(biāo)定位或操作符作用域

h,j挺份,k褒翰,l 左、下、上优训、右移朵你。

{[ home | 0 | ^ ] | [ end | $ ]}          行首/行尾;
{ gg | G }      首行/末行揣非;

{ w | W } 右移一個單詞/字符串位抡医,光標(biāo)停在首字符;
{ e | E } 右移一個單詞/字符串位早敬,光標(biāo)停在尾字符忌傻;
{ b | B } 左移一個單詞/字符串位,光標(biāo)停在首字符搞监;

{ f|tchar } 移動到當(dāng)前行 char 字符位/前水孩,再輸入分號 ; 以移動到下一個匹配位。
{ F|Tchar } 同上腺逛,只是反向荷愕。

{ H | M | L } 移動到屏幕頁首/頁中/頁尾。
[ nG | ngg ] 移動到第 n 行棍矛。

注:可在以上作用域前指定數(shù)字倍數(shù)安疗,但改變、剪切和復(fù)制操作符必須在最前面够委。
操作符 數(shù)字倍數(shù) 作用域 (字段間沒有空格)

ctrl + G 顯示光標(biāo)所在位置及文件狀態(tài)荐类。


可視模式(Visual mode):

普通模式按 v 進(jìn)入可視模式, 高亮選取文本。
按 V茁帽,高亮按行選取玉罐。
按 ctrl + v,高亮按塊選取潘拨。

文本塊

{aw | as | ap } 一個詞/一句/一段

{ab | ib | aB | iB} 小括號塊/不含括號/花括號塊/不含括號吊输。

可視模式 [數(shù)字倍數(shù) 作用域] | [文本塊] 操作符 (字段間沒有空格)

v motion :w filename 保存所選行到指定文件。


插入模式(Insert mode)

i | I | a | A 在光標(biāo)處/行首/光標(biāo)后/行尾插入铁追。
o | O 在下/上一行插入季蚂。


操作符(Operator)

改變/剪切/復(fù)制/粘貼:

c、d琅束、y 分別為改變扭屁、剪切和復(fù)制操作符。

操作符 [數(shù)字倍數(shù) 作用域] | [文本塊](字段間沒有空格)

{ p | P } 粘貼到所在行下/上涩禀。

{ yy | [ dd | D ]} 復(fù)制/刪除(剪切)所在行料滥。
[n]dd 刪除(剪切)n 行。


替換模式(Replace mode)

r 替換光標(biāo)處的字符艾船,同樣支持漢字葵腹。
R 進(jìn)入替換模式高每,按 esc 回到普通模式。


撤消與重做(Undo and redo)

U 取消在當(dāng)前行中所作的所有改動礁蔗。
[n]u 取消 一/n 個改動觉义。
:undo 5 撤銷 5 個改變。
:undolist 你的撤銷歷史浴井。
. 重復(fù)
ctrl + r 反撤銷。
:earlier 6m 回到6分鐘前霉撵。
:later 19s 前進(jìn)19秒磺浙。

底部命令模式(Command at bottom mode)

匹配搜索

/keyword 向后查找 keyword, n 下一個徒坡; N 前一個撕氧。
?keyword 向前查找 keyword, n 下一個喇完; N 前一個伦泥。
% 光標(biāo)停在單個任意括號字符下,按 % 查找配對的括號锦溪。
{ * | # } 在任何單詞下按 */# 號不脯,則向后/前查找此單詞。

匹配替換

:s/old/new 在當(dāng)前行用 new 替換第一個 old刻诊。
:s/old/new/g 在當(dāng)前行用 new 替換所有的 old防楷。
:n1,n2s/old/new/g 在 n1 和 n2 用 new 替換所有的 old。
:%s/old/new/g 用 new 替換文件中所有的 old则涯。
:%s/old/new/gc 同上复局,但每次替換都提示確認(rèn)。

:%s/^/#/g 在每一行的行首插入 #粟判,^ 表示行首亿昏。
:%s/$/66/g 在每一行的行尾插入 66,$ 表示行尾档礁。

綜合命令

:! command 執(zhí)行 Linux 命令角钩。
:m,nw !cmd 將文件的 m 行到 n 行之間的內(nèi)容做為命令輸入執(zhí)行命令。

:m,nd 剪切 m 行到 n 行的內(nèi)容事秀。

:r filename 在光標(biāo)位置下插入指定文件的內(nèi)容彤断。
:r !command 在光標(biāo)位置下插入命令的輸出。

:e [filename]| :e! [filename] 重新載入文件/強(qiáng)制重新載入易迹。

:pwd 顯示 vim 當(dāng)前工作目錄宰衙。
:cd path 改變 vim 工作目錄。

文檔保存/退出

{:w | :w filename} 保存/按指定文件名保存睹欲。
{:q | :q!} 退出/強(qiáng)行退出供炼。
{:wq | :wq!} 保存并退出/強(qiáng)行退出一屋。

常用設(shè)置:

:{set nu[mber] | set nonu[mber]} 開啟/關(guān)閉顯示行號。
:{set hlsearch | set nohlsearch} 開啟/關(guān)閉高亮搜索袋哼。
:{syntax on | syntax off} 開啟/關(guān)閉語法高亮冀墨。
:{set list | set nolist} 開啟/關(guān)閉顯示非打印字符。
:{set si | set nosi} 開啟/關(guān)閉智能縮進(jìn)涛贯。
:{set ai | set noai} 開啟/關(guān)閉自動對齊诽嘉。
:{set ic | noic} 開啟/關(guān)閉忽略大小寫。
:set autochdir 根據(jù)所編輯文件的位置自動切換 vim 工作目錄弟翘。

多窗口

:sp[lit] file - 在新緩存中打開指定文件并分割窗口虫腋。
:vs[plit] file - 在新緩存中打開指定文件并垂直分割窗口。
Ctrl + ws - 水平分割窗口稀余。
Ctrl + wv - 垂直分割窗口悦冀。
Ctrl + ww - 切換窗口。
Ctrl + wq - 退出窗口睛琳。
Ctrl + wx - 與下一個窗口切換位置盒蟆。
Ctrl + w= - 讓所有窗口的高和寬相等。

寄存器(Register)

用寄存器來保存或調(diào)用寄存器中的內(nèi)容來應(yīng)用剪切师骗、復(fù)制或粘貼历等。

:reg 顯示所有寄存器的內(nèi)容。

a-z 為有名寄存器

"a-z 在剪切丧凤、復(fù)制或粘貼前都可以使用 a-z 有名寄存器募闲。
"A-Z 用大寫字母 A-Z 表示在相應(yīng)的寄存器中追加內(nèi)容。

"" 默認(rèn)寄存器愿待,每次使用 c浩螺,d,y仍侥,p 的內(nèi)容要出。

0-9 為無名寄存器。

"0 保存最新復(fù)制的內(nèi)容农渊。
"1-9  c患蹂,d,y砸紊,p 操作記錄序列传于。

".,"%醉顽,":沼溜,"# 只讀寄存器。

". 最后插入的文本游添。
"% 當(dāng)前文件名系草。
": 最近執(zhí)行的命令通熄。
"# 替代的文件名。

其它寄存器

"- 最近小于一行的刪除找都。
"/ 最近的搜索匹配唇辨。
"= 最近的表達(dá)式擴(kuò)展。
"_ 黑洞寄存器能耻,使用此寄存器的內(nèi)容將不會被記錄赏枚。
"* 系統(tǒng)剪貼版(X11 primary)。 
"+ 系統(tǒng)剪貼板(X11)晓猛。

排版

基本排版

<< 向左縮進(jìn)一個 shiftwidth
>> 向右縮進(jìn)一個 shiftwidth
:ce(nter) 本行文字居中
:le(ft) 本行文字靠左
:ri(ght) 本行文字靠右
gq 對選中的文字重排嗡贺,即對過長的文字進(jìn)行斷行
gqq 重排當(dāng)前行
gqnq 重排 n 行
gqap 重排當(dāng)前段
gqnap 重排n段
gqnj 重排當(dāng)前行和下面 n 行
gqQ 重排當(dāng)前段對文章末尾
J 拼接當(dāng)前行和下一行
gJ 同 J,不過合并后不留空格鞍帝。

拼寫檢查

:set spell 開啟拼寫檢查功能。
:set nospell 關(guān)閉拼寫檢查功能煞茫。
]s 移到下一個拼寫錯誤的單詞帕涌。
[s 反向。
z= 顯示一個有關(guān)拼寫錯誤單詞的列表续徽。
zg 指示拼寫檢查器該單詞拼寫正確蚓曼。
zw 指示拼寫檢查器該單詞拼寫錯誤。

自動補全:

在輸入模式下輸入部分字符然后輸入
ctrl + x 和 ctrl + n 用正在編輯的文件的內(nèi)容作為關(guān)鍵字補齊钦扭。
ctrl + x 和 ctrl + f 以當(dāng)前目錄內(nèi)的文件名作為關(guān)鍵字補齊纫版。
ctrl + x 和 ctrl + o 以擴(kuò)展名作為語法填充,以 vim 內(nèi)建的關(guān)鍵詞補
齊客情。(必須要寫對文件擴(kuò)展名其弊,比如 .html, .php 等等)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末膀斋,一起剝皮案震驚了整個濱河市梭伐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌仰担,老刑警劉巖糊识,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異摔蓝,居然都是意外死亡赂苗,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門贮尉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拌滋,“玉大人,你說我怎么就攤上這事绘盟○妫” “怎么了悯仙?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長吠卷。 經(jīng)常有香客問我锡垄,道長,這世上最難降的妖魔是什么祭隔? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任货岭,我火速辦了婚禮,結(jié)果婚禮上疾渴,老公的妹妹穿的比我還像新娘千贯。我一直安慰自己,他們只是感情好搞坝,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布搔谴。 她就那樣靜靜地躺著,像睡著了一般桩撮。 火紅的嫁衣襯著肌膚如雪敦第。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天店量,我揣著相機(jī)與錄音芜果,去河邊找鬼。 笑死融师,一個胖子當(dāng)著我的面吹牛右钾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播旱爆,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼舀射,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了疼鸟?” 一聲冷哼從身側(cè)響起后控,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎空镜,沒想到半個月后浩淘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡吴攒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年张抄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片洼怔。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡署惯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出镣隶,到底是詐尸還是另有隱情极谊,我是刑警寧澤诡右,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站轻猖,受9級特大地震影響帆吻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜咙边,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一猜煮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧败许,春花似錦王带、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至醋寝,卻和暖如春盟戏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背甥桂。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留邮旷,地道東北人黄选。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像婶肩,于是被迫代替她去往敵國和親办陷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容