新聞中心
用聰明的方式打開(kāi) Vim,提高編輯效率。

創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站制作、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),山東網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:山東等地區(qū)。山東做網(wǎng)站價(jià)格咨詢:18982081108
提起文本編輯器,你一定會(huì)想到編輯器之神 Vim。作為一個(gè)快 30 歲的「老牌」編輯器,直到現(xiàn)在還很受歡迎。Vim 編輯文件非常高效,可支持多個(gè)操作系統(tǒng),如 Unix/Linux、Windows、macOS,甚至 iOS 和 Android 上都能找到 Vim 的移植版本。
[[341029]]
Vim 雖然非常強(qiáng)大,但是需要記住很多操作命令。如果沒(méi)有有效的學(xué)習(xí)方法,操作起來(lái)很不方便,只有做到非常熟練才能感受到它帶來(lái)的快捷。下圖展示了 Vim 中關(guān)于刪除、復(fù)制與粘貼的部分命令:
其實(shí) Vim 的操作命令還遠(yuǎn)不如此,如果沒(méi)有很好的學(xué)習(xí)方法,可能很難使用這種編輯器。
那么有沒(méi)有更好的方式來(lái)進(jìn)行 Vim 學(xué)習(xí)呢?
近日,在 GitHub 上開(kāi)源了一個(gè)用聰明的方式學(xué)習(xí) Vim 的項(xiàng)目,上線短短幾天,便收獲了 3400 星。讓我們來(lái)看看它是怎么做到聰明學(xué)習(xí) Vim 的。
項(xiàng)目地址:https://github.com/iggredible/Learn-Vim
用聰明的方式打開(kāi) Vim
該項(xiàng)目提供了學(xué)習(xí) Vim 的具體步驟,共分為 19 個(gè)章節(jié)。通過(guò)學(xué)習(xí),你將掌握 vim 的語(yǔ)法、對(duì)文件的移動(dòng)操作、撤銷等等多種操作命令。
學(xué)習(xí)目錄如下圖所示:
這個(gè)「聰明」學(xué)習(xí) Vim 到底體現(xiàn)在哪些方面呢?與別的 Vim 學(xué)習(xí)教程的不同之處又有哪些呢?接下來(lái)一一解析。
Vim 語(yǔ)法
在所有章節(jié)中,首先介紹一下 Vim 語(yǔ)法。一旦理解了 Vim 命令的語(yǔ)法結(jié)構(gòu),就可以與 Vim 進(jìn)行「對(duì)話」了,就如想要學(xué)習(xí)一門(mén)語(yǔ)言,語(yǔ)法規(guī)則是繞不開(kāi)的一步。而這個(gè)語(yǔ)法,就是「動(dòng)詞 + 名詞」。現(xiàn)在使用基本的 Vim 動(dòng)詞和名詞來(lái)建立詞匯表。
Vim 名詞與動(dòng)詞
Vim 中的名詞(移動(dòng)):移動(dòng)是在 Vim 中進(jìn)行上下左右等操作。Vim 中的一些動(dòng)作如下所示:
h:左j:下k:上l:右w:移動(dòng)到下個(gè)單詞的開(kāi)頭}:跳到下一段$:移動(dòng)到本行末尾
Vim 中的動(dòng)詞(操作符):以 h 操作符為例,Vim 中有 16 種。但只需掌握其中的 3 種,就能滿足 80% 的編輯要求。
y 復(fù)制文本d 刪除文本,并保存到寄存器c 刪除文本,保存到寄存器,并開(kāi)啟「插入」模式
現(xiàn)在了解了 Vim 中基本的名詞和動(dòng)詞,就可以根據(jù)語(yǔ)法規(guī)則組合上述名詞和動(dòng)詞:
y$:把當(dāng)前所有的內(nèi)容,從當(dāng)前位置拖至行尾;
dw:從當(dāng)前位置刪除到下一個(gè)單詞的開(kāi)頭;
c}:從當(dāng)前位置到當(dāng)前段落末尾進(jìn)行更改。
當(dāng)然移動(dòng)也接受數(shù)字作為參數(shù),如果你想上移 3 行,不需要鍵入 k 三次,直接使用 3k 就行了:
y2h:向左移動(dòng) 2 個(gè)字符;
d2w:刪除后面的 2 個(gè)單詞;
c2j:更改接下來(lái) 2 行。
除此以外,Vim 還允許通過(guò)鍵入操作符命令兩次來(lái)執(zhí)行行操作。例如:鍵入「dd」,刪除整行;鍵入「cc」,更改整行內(nèi)容。
Vim 可組合性和語(yǔ)法
在學(xué)習(xí)了 Vim 語(yǔ)法之后,下面介紹一下 Vim 中的可組合性??山M合性意味著擁有一組可以組合且執(zhí)行更復(fù)雜命令的通用命令。
在 Vim 中可以組合較簡(jiǎn)單的命令執(zhí)行復(fù)雜的命令。當(dāng) Vim 與外部程序集成時(shí),可組合性的真正威力就顯露出來(lái)了。
假如你有一個(gè)非?;靵y的文本,如下所示,你想把它變成列表形式:
Id|Name|Cuteness01|Puppy|Very02|Kitten|Ok03|Bunny|Ok
用 Vim 命令不容易做到,但是你可以用 column 終端命令快速完成。將光標(biāo)放在「Id」上,運(yùn)行「!}column -t -s "|"」。就可以得到如下表格數(shù)據(jù):
Id Name Cuteness01 Puppy Very02 Kitten Ok03 Bunny Ok
上述的操作過(guò)程可分解成這樣:動(dòng)詞為「!」(過(guò)濾操作符),名詞為「}」(轉(zhuǎn)到下一段)。過(guò)濾器操作符「!」接受另一個(gè)參數(shù),一個(gè)終端命令「column -t -s "|"」。
假設(shè)你不僅希望將文本列表化,還想篩選出帶有「Ok」的行。awk 可以輕松地完成這項(xiàng)任務(wù)??梢詧?zhí)行如下操作:
!}column -t -s "|" | awk 'NR > 1 && /Ok/ {print $0}'
得到的結(jié)果:
02 Kitten Ok03 Bunny Ok
對(duì)操作符、動(dòng)作和終端命令了解得越多,編寫(xiě)復(fù)雜動(dòng)作的能力就會(huì)成倍增加。
基于 Vim 語(yǔ)法的更多操作符
在了解了 Vim 語(yǔ)法后,就可以完成更多的文件操作。例如第 5 章就介紹了對(duì)文件的操作。
對(duì)文件的操作,最基本的是對(duì)字符操作,字符操作的運(yùn)動(dòng)單元是左、下、上、右。
h 左j 下k 上l 右
接下來(lái)轉(zhuǎn)到一個(gè)更大的移動(dòng)單元,詞:
w 移到下一個(gè)單詞的開(kāi)頭e 移到下一個(gè)單詞的末尾b 移到前一個(gè)單詞的開(kāi)頭ge 移到前一個(gè)單詞的末尾
詞的操作介紹完,下面介紹一下對(duì)行的操作:
0 移動(dòng)到當(dāng)前行的第一個(gè)字符;^ 移動(dòng)到當(dāng)前行中的第一個(gè)非空字符;g_ 移動(dòng)到當(dāng)前行的最后一個(gè)非空白字符;$ 移動(dòng)到當(dāng)前行的最后一個(gè)字符;n| 移動(dòng)到當(dāng)前行的第 n 列。
此外還有對(duì)句子和段落、匹配、行號(hào)、窗口等的操作,這里不再贅述。
該教程還在持續(xù)更新中,通過(guò)教程的學(xué)習(xí),希望能更好地掌握 Vim 命令,并更快地進(jìn)行代碼編輯。
文章名稱:編輯神器Vim新教程GitHub3400星,復(fù)雜命令輕松搞定
網(wǎng)頁(yè)網(wǎng)址:http://www.dlmjj.cn/article/dpdghpe.html


咨詢
建站咨詢
