目的
為什麼寫這個,為了總結一下vim編輯器的使用方法,命令,和過程,更有效的使用vim編輯器。同時,也可以幫助其他人和接觸學習vim。
使用vim編輯器有一段時間了,堅持用vim編輯器是個了不起的事情。我學習vim編輯器是2019的4月份開始學vim編輯器,最開始是背一個vim的命令鍵盤圖,背到熟,花了一週時間背熟。接著還用百度雲盤搜到一個2小時的視訊教學課程,名字叫做編輯器之神vim-從入門到精通,進行自我提升。最好就是下載gvim到電腦上操練。遇到不同的就百度查詢,用筆記記住命令。。比如摺疊程式碼,快速註釋程式碼塊,本檔案查詢程式碼,替換功能,顯示檔案樹,切換Tab欄,對vue檔案語法高亮,彈出程式碼提示,複製貼上,切換模式,快速選擇區,快速刪除,快速複製,重複上一個命令,新增標註和跳到某一個標註等等。用好這些命令,就可以應付前端工作上的程式碼編輯了。我把全域性檔案查詢和替換和跑專案,函式名跳轉交給了vscode,寫起程式碼來就是開鐳射槍,噔噔噔,完美!!!
vim的特點
定位
快速定位--同一個檔案
- 向上,向下翻頁
Ctrl +d
向下翻頁Ctrl +u
向上翻頁 按住不放就是莎莎莎的下來或者向上。 - 跳到特定的某一行
平時寫程式碼的時候,報錯了,會有提示到那一行,比如50行。輸入:50
回車帶那一行。比起滑鼠滾輪快多了。 - 文尾文首
命令模式下,輸入gg,跳到文首;輸入G跳到文尾。都是瞬間的事。 - 新增標註,跳到某標註
寫程式碼的時候,我們有時需要在兩個或者多個地方來回撤換,不斷的換和看邏輯,命名等等。m1
ma
就可以新增標註1和a,` +1就可以跳到1標註。反正一個程式碼檔案你新增多少個標註都可以。任你愉快的跳轉。 - 命令模式下,hjkl分別是向左下上右移動游標。
快速定位--不同檔案
- 這個應該是可以安裝外掛來實現。不建議用外掛,因為記得東西又多了一層,儘量選擇使用無外掛的Vim。我平時就是使用Vim自帶的
:Te
來開啟檔案樹,通過檔案樹上下來開啟不同的檔案。等你用Te開啟多幾次檔案,你會發現你多專案的結構變得越來越熟悉。gt是向右切換標籤頁,gT是向左切換標籤頁。5gt就是跳到當前開啟標籤頁的第五個,如果沒有第五個,就沒效果。同理15gt跳到15標籤頁。 - 函式名跳轉
交給vscode,懶得安裝外掛。 - 專案全域性搜尋和全域性替換
交給vscode,安裝外掛要折騰,時間成本也高,還要學那個外掛。跑專案也在vscode裡面跑。對,累死vscode。
幾種模式--最關鍵
vim有命令模式,插入模式,可視模式。可以快速選擇單個字母,單詞,一行,多行,任意一個小塊,四方形等等進行復制,貼上,刪除,只有你想不到,沒有你做不到。就是這麼任性。
插入模式就是平常那種編輯器的模式,沒什麼好說的。
下面主要是命令模式
游標移動
把游標移動到某一字母或者單詞或者行,hjkl,是左下上右快速移動游標,結合上方的翻頁快捷鍵,就是快速移動。w是每字母向前移動,b是每字母后退移動。6h,6j,6k, 6l 看看會發生什麼,就是等於按了6次移動游標的方向鍵,游標瞬間移動6行;60,600,6000等數值都支援,爽啊。
刪除
刪除一行 dd 刪了,說起刪除一行,以前我用vscode,ctrl + d就是刪除一行,後來我在上一家公司用了webstorm,這個功能沒了,一直想用用不到,憋了大半年。
刪除一個單詞 diw 刪除一大串字串 diW 刪除某個字母 x
刪除多行 按V進入可視行模式下選擇多行,按d
刪除想刪的 按v進入可視模式 選擇內容,按d
前端的同學寫程式碼,一定會接觸標籤。那我問一下,如果一個form裡面很多欄位,裡面的程式碼有100行,我讓你刪除一百行,你會怎麼做?第一就是手動用滑鼠拖著帶滾輪小心地選中那一百行,按刪除鍵。要不就是收起摺疊選中在刪。如果用vim的話,我可以告訴你,很快,游標移動form標籤上,dit或者dat就可以了。壓根不用怕刪錯一行無辜的程式碼。
刪除一對符號的內容 di該符號或者da該符號
複製
y複製某一個字母
yiw 複製一個單詞
複製一行或者多行 V進入可視行模式,選中一行或者多行,y
複製一個標籤的內容 yit或者yat
複製一對符號的內容 yi該符號或者ya該符號
貼上
p或者P一個向前貼上一個向後貼上
5p 就是一下子貼上5次內容,有時候寫form表單每一項的Item就是需要這樣子的貼上。
提示,vim 和系統的貼上板是分開的,用的是不同的暫存器,可以按照外掛,或者引入vim檔案解決一下,讓它倆統一。
查詢和替換(同一檔案內)
查詢就是按下 / +關鍵詞,回車,按n 快速定位關鍵詞所在的位置。
替換:%s/舊內容/新內容/g
指定特定的行: :5,15s/dog/cat/g 指定替換第五行到第15行的;就是以前有個老師課上給我講過:vscode裡面有個選中一個單詞,然後按住ctrl + d多次,滴滴滴滴,就可以往下選中相同的單詞,批量修改。沒想到vim這種更快的比它快多了。
格式化程式碼
可視行模式選中要格式化的程式碼,按=。簡單粗暴。
那個vscode記得是要同時按三個鍵,我想笑了。webstorm也要按2個鍵,想想都笑了。
註釋
程式碼可以寫得醜,但是註釋不能省,合理的註釋讓自己和別人方便,否則以後沒有人看的懂你的程式碼,是永遠永遠。vim怎麼註釋呢?vscode裡面註釋很簡單,ctrl / 就可以快速加上。
vim 註釋javascript ctrl v 進入可視塊模式,j或者k選中多行, 按 I 輸入 // 就可以了。
註釋 html 在需要註釋的那一塊第一行,行首插入
註釋 css 和註釋html 一樣,只不過插入的是 /* 和 */
這也是沒辦法的事了,為了可以快速的用vim編輯,也只有接受它的缺點。
多行插入
有時候,寫程式碼的時候,需要在相鄰的多行的同一個位置插入相同的程式碼,這時候,vim的多行插入就起到很大的作用了。ctrl v
進入可視塊模式,j或者k選中多行,h和l移動到你需要的x位置,按大寫的I進入插入模式,然後就是改程式碼。其實上面說的註釋就是類似的操作。
縮排
再也不是tab
縮排了,而是<
和>
掌管了縮排和反縮排;選中所需要的程式碼行,就可以反縮排/縮排操作了。縮排後可以結合.
來重複上一個操作,快速多次縮排。
皮膚,顏色
在vim的配置檔案vimrc 下加入相關的程式碼,百度上一堆,想什麼皮膚,背景色,字號,高亮顏色,行號顏色,是否顯示行號等等,都可以設定,我Github的一個倉庫就有寫好的配置。配了好久了。
在vimrc中指定一個皮膚vim檔案,就可以快速得到該皮膚,這類的皮膚檔案Github上一搜一大堆,我用的是molokai,你看看你用webstorm能有幾種皮膚方案給你選?
介面
用vim的話我可以把介面調的和螢幕一樣大。vscode有選單欄,側邊欄,shell,可編輯區就變得小。我上一家公司公司的同事為了看到更多的程式碼,就把字型設定的比較小。這貨不要眼睛啊……用 vim我就不一樣了,編輯區幾乎和螢幕一樣大,字型還是那麼大,看起程式碼來,爽得一匹。
look, 全屏
程式碼提示--缺點
程式碼提示沒有vscode的多和全,我也不強求了,一般是按ctrl x和ctrl n出現提示,有的話就選,沒有的話實在忘記了就到百度和官網上面找。一來可以提高搜尋能力,二來熟悉一下技術官網。反正就是程式碼提示可以用ctrl c + ctrl v解決。
外掛可以解決,一個外掛叫autocomplete,可以幫你解決前端大多數的程式碼提示。但是我還是提醒儘量不要用那麼多外掛,能不用就不用。
有記憶
專案開啟過一次,退出了,下次進去游標出現在每一個檔案上次退出時的位置。其它編輯器沒有這個功能。
專案再次開啟,按撤銷鍵,檔案會變化一或者多次次,就是會退一或多次。因為在vimrc檔案做了undir檔案設定。這也是其他編輯器沒有的功能。
軟體記憶體小36m
軟體就10多M,加上其他配置,外掛就36M,這麼多功能的情況下記憶體算小的了。
適合哪些人
適用於程式設計師,作家,寫部落格的人,小編,微博上的大v。只要是寫程式碼或者寫字,都是特別適用的,保證讓你愛不釋手。蘋果系統,window 系統,Linux系統,都是通殺的。記得大學那會學嵌入式就是用的Linux下的vim,那會感覺這個編輯器無法用滑鼠移動游標,壓根無法適用,特別討厭。現在看來是自己年幼無知,不是魁寶啊。以後不怕Linux系統了。
配合autohotkey使用
可以使用autohotkey把 caps lock 鍵改為 esc,這樣子由插入模式變化到正常模式,按 caps lock 就可以了,大大提高效率。
autohotkey還可以在插入模式做出一些vim編輯器的效果,比如滑鼠上下左右移動,按單詞移動游標,快速刪除一行,向上向下翻頁,快速移動到文首,文尾等等,減少了插入模式和正常模式的切換次數,從而提高效率。
自己對vim的評價
1980年代的編輯器,至今流行,經得起時光考驗的編輯器之神。像那些IDEA或者vscode,用幾年了,出現一個更好用的新的替代物,又要換和學習,幾年的使用習慣要拋棄。而vim卻沒有這樣的煩惱,不愧是程式猿,作家,部落格家的屠龍刀或者衝鋒槍。雖然它有上述的缺點,擋不住它閃閃發光的優點,我個人是愛不釋手滴。寫程式碼我會永遠永遠用vim,寫部落格用vim或者簡書唄,用簡書是因為備份好,文字不容易失去(記得今年4月份我寫了2個晚上的文字失去,還有上個月寫了6個小時的文字失去,那種心情只有部落格家才可以深刻理解);電腦,安卓,iOS都可以使用,想寫就寫,隨想隨寫。
用vim有什麼收穫
用vim了之後,使用編輯器的思維方式和習慣都是大改了,效率一開始是很慢,比以前慢,讓你想放棄,好想吐;但是熬過差不多半個月一個月之後,你就會發現效率快速提高,你的速度和用vscode可以持平,甚至速度提高10%。用了一年幾年,寫程式碼打字的速度至少提高50%,因為你的游標可以隨思維而快速定位。你幾乎可以不用滑鼠,除了撤換軟體,比如有編輯器撤換到瀏覽器。再說你幾乎再也不用怕什麼linux系統。效率提高,時間就省下來了。
vim的無外掛操作(推薦)
vim無外掛操作
我的vim配置
我的vim配置