vim 入坑指南

2021-09-13 23:00:35 字數 3822 閱讀 6856

個人站點:

桃園

vim 被譽為『編輯器之神』,與之同時代的 emacs 被譽為『神之編輯器』。可以看得出 vim 在編輯器的地位是很高的,得益於 vim 的指法,敲起**來如行雲流水。特別膜拜創始人創始出這麼方便的敲**的指法,這篇文章就是來帶你入坑 vim 指法操作。

在當今前端開發工具百花齊放的時代(vs code、sublime、atom 以及 ide webstorm),我為什麼還要介紹 20 多年前開發的乙個老古董呢?在這裡我想說的是出身雖然老,但是所帶來的價值並沒有減,一旦習慣了 vim 的指法之後,你會覺得不用 vim 操作寫**會覺得很不習慣,甚至不知道怎麼操作。然而用在支援 vim 指法的編輯上寫**你會覺得如行雲流水,如果再配個機械鍵盤,簡直是享受,特別符合極客的風格。

一旦學會了 vim 的指法,會讓你終身受益,至少在你敲**的年代會收益,毫無誇張, 它會讓你擺脫煩人的,在敲**的時候頻繁的移動滑鼠,這也是 vim 的設計理念之一 -- 脫離滑鼠。

本篇文章比較適合前端開發者,因為我也只是用 vim 在前端領域做過一些開發,其他領域我沒有發言權。

a:當然不是。首先 vim 的學習成本還是很高的,因為他跟平時我們用的編輯器敲**的方式根本不同,因為它是不用滑鼠的,純鍵盤操作。你想想如果你在你的 vs code 上不用滑鼠操作,你上下左右全靠方向鍵,那敲**的速度得有多慢。而且初學者想把 vim 打造成乙個自己的 ide 還是很有難度的。所以我這裡推薦的是,不管是你的 vs code、sublime等,裝乙個 vim 外掛程式。我在 vs code 上試過,很爽,只不過現在投身到 emacs 的懷抱了。

雖然我用 emacs 了,我還是會裝 vim 外掛程式(evil)。如果有興趣,下次可以推薦一下 spacemacs 。
開題說了這麼多,就是想吸引一下大家,覺得 vim 的指法是值得去學習的,接下來進入正題。

vim 上的所有定義的快捷鍵都是有一定的意義的,在這裡我先把常用的一些列出來。

h(左)、l(右)、j(上)、k(下)、f(front)、b(back)、u(up)

w(word)、s(sentence)

vim 裡面有好幾種模式,但是因為我這裡介紹的是在目前的編輯器裡面裝 外掛程式,所以像命令模式這種用來儲存檔案、退出檔案的就不介紹了。

nomal mode(預設模式,因為使用該模式場景最多,所有定為預設模式)。

insert mode (插入模式--少用,用了它 vim 就成 「啞巴」了)。

visual mode(可視模式,取名叫游標模式或者選擇模式可能還比較好理解)

當我們記住上面的助記符之後,我們就可以像寫英文短語一樣操作了。

vim 快捷鍵語法:operator[motion],例如 刪兩個單詞就是

d2w,operator 和 motion 我已經在前面給出來一些了。

3.1.1 最基本的 h、j、k、l

最基本的上下左右移動(跟鍵盤上下左右的鍵盤效果相同,但是往往方向鍵在鍵盤的右下方,離主鍵盤區較遠,這個也相對比較有優勢):

移動屬於 motion,所以在前面加上「count」就可以移動多行了,比如向上移動 10 行,就可以 10k。往往編輯器會有行號,定位需要做個加減法,如果採用的是相對行號,用這個就比較方便。不懂相對行號的同學看下圖就懂了。

3.1.2 快速移動

w:游標往前移動乙個詞

b:游標向後移動乙個詞

0:移動游標到當前行首

^:移動游標到當前行的第乙個字母位置(注意與 0 的區別)

$:移動游標到行尾

fx:移動游標到當前行的下乙個 x 處(x為任意字母)

tx:和上面乙個命令類似,移動到 x 的左邊乙個位置

):移動游標到下乙個句子

( :移動游標到上乙個句子

:移動游標到下一段

3.1.3 快速定位

在剛才介紹了通過相對行號來進行移動到行的游標,還有採用絕對定位來移動的。那就是 gg。

語法: [num]gg

ctrl + b:向上移動一屏(foward首字母小寫)

ctrl + f:向下移動一屏(backward首字母小寫)

ctrl + d:向下滾動半屏內容(down首字母小寫)

ctrl + u:向上滾動半屏內容(up首字母小寫)

在 normal 模式下是沒有刪除操作的,d 這種刪除也是剪下。

以上全是 normal 模式
在前面也說了,進入編輯模式也就變成了「啞巴」vim 了,就跟一般的編輯器沒什麼區別了。很多人就知道用 i 可以進入,還有很多命令可以讓你聰明的進入。

要是前面都學會了,可視模式就比較簡單了,而且你將會經常用到這個模式。我會把這個模式稱做「選擇模式」,接下來我們就來探索一下是如果選擇的。

其實也就兩個關鍵的點:v(字元選擇)、v(行選擇)

3.4.1 v(小寫 v)

在 normal 模式下,按一下 v,然後可以按 l,重複按 l,你會發現右邊的在一直被選中(高亮的部分)。同樣的操作,按了 v,然後再練習一下按 h、j、k。

選中的目的是什麼呢?就是為了進行一些編輯操作,比如刪除 d (實質是剪下)、複製 y。

小提示,常常選中之後用 c 也是比較好的選擇哦,剪下並進入插入模式。
3.4.2 v(大寫 v)

v 就是選中行,也很簡單。按了 v 之後,然後按 j、k,就可以上下選擇行了,然後一次性刪除 d、複製 y,就比較方便。

operator 就是我們前面提到的插入(c)、剪下(d)、複製(y)以及選擇(v),i 表示 scope 範圍內,a 表示包含 scope 標籤,scope 就是操作的範圍了。
例項:

以下如果將 i 換成 a,則會將符號也包含進去

vib(選中小括號內的內容)

vib(選中大括號內的內容)

vi"(選中雙引號內的內容)

vi'(選中單引號內的內容)

viu: 撤回上次操作(效果跟 command + z 效果一樣)

/|?***:表示在整篇文件中搜尋匹配***的字串, / 表示向下查詢, ? 表示向上查詢.其中***可以是正規表示式。查詢到以後, 再輸入 n 查詢下乙個匹配處, 輸入 n 反方向查詢.

:%s/original/replacement:檢索第乙個 「original」 字串並將其替換成 「replacement」

:%s/original/replacement/g: 檢索並將所有的 「original」 替換為 「replacement」

:%s/original/replacement/gc:檢索出所有的 「original」 字串,但在替換成 「replacement」 前,先詢問是否替換

這些操作一般編輯器都自帶有很好的快捷鍵,記不住也沒啥。

我寫這篇文章的目的不是為了總結什麼知識點(其實當你 vim 用熟了,這些命令完全角成肌肉記憶了,根本不用記下來),或者說想發篇文章之類的,僅僅是想給 vim 做乙個宣傳,讓更多的人接觸 vim,讓更多的開發者在開發上效率更高。如果你覺得這篇文章對你有幫助,請**給更多的人讓他們都了解了解。

最後想提醒的就是,對於這些快捷鍵,死記是很難記完的,根據我總結的一些語義話的方式去記,有公式的記公式,可能要快一點,然後就是多實踐,敲多了自己就記住了。我剛開始學的時候,還不知道有那些助記符,基本完全靠死記硬背,我就是用一張紙,然後把命令手寫抄到紙上,放在我的電腦旁,忘了就馬上拿來看看,別說,效果還挺好的。

祝你們好運!

vim 入坑指南

個人站點 桃園 vim 被譽為 編輯器之神 與之同時代的 emacs 被譽為 神之編輯器 可以看得出 vim 在編輯器的地位是很高的,得益於 vim 的指法,敲起 來如行雲流水。特別膜拜創始人創始出這麼方便的敲 的指法,這篇文章就是來帶你入坑 vim 指法操作。在當今前端開發工具百花齊放的時代 vs...

vim編輯器入坑指南

最近在伺服器上要新增環境變數,我勒個去。vim太難用了,小白表示很無奈,還好我的心態有點 在說啥尼,回歸正軌 首先看了這兩篇重要的部落格 看了這篇部落格,勉強的進入了,輸入 i 勉強進入了編輯模式 接下來,怎麼退出?尷尬,退不出來了,各種敲鍵盤。試了這篇部落格,按住shift和 一定看清,這是兩個鍵...

Kafka入坑指南

kafka是為大資料而生的訊息中介軟體,以其百萬級tps的吞吐量名聲大噪,迅速成為大資料領域的寵兒,在資料採集 傳輸 儲存的過程中發揮著舉足輕重的作用,而storm,spark,flink等大資料流處理或批處理平台都有kafka的相關外掛程式支援。本著為開源做貢獻的原則,在學習kafka的同時也參與...