Vim求生
[TOC]
Vim 是從 vi 發展出來的一個文本編輯器。其代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用。和 Emacs 并列成為類 Unix 系統用戶最喜歡的編輯器。
—— 維基百科
很多接觸 Vim 的程序員應該都有過這樣的經歷:
我為什么知道這種情況?因為我也一遍有一遍的嘗試想把 Vim 作為我的主力編輯器,每一次都是傷痕累累的滾回 sublime 了。分析這里面的原因其實只有一個:我太想用它來裝 X 了,太想感受那種輕飄飄的虛榮感覺,還沒有認識到“世界上有 3 類程序員:用 Vim 的程序員,用 Emacs 的程序員,用其他編輯器的程序員” 這句話并不是裝出來的,Vim 真的可以大幅提高工作效率。
如果一個工具真的可以在以后長時間內大幅提高效率,那么花一小點時間,慢慢的使用、進階絕對是個劃得來的生意。而且,有時候我們不得不在生產環境中直接面對 Vim, 這種時候通常是緊急的情況(服務器發生故障等),如果對 Vim 不熟悉,那只能是兩眼一抹黑了。
大部分人放棄 Vim 可能都是出于這樣的原因:期望過高,追求速成。而本文的目的只在于善意的提醒你:慢一點,別放棄。
生存下來
追求速成的同學在初次接觸 Vim 時通常活不過 30 分鐘,太不友好了!!!那為什么 Vim 可以提高工作效率?它的設計初衷就可以讓你的手指不離開鍵盤進行所有的操作。
活下來需要注意的事情很簡單,認清 Vim,使用最簡單的指令,就跟我們學吉他一樣,先看看買的琴,弄清楚 Do Rei Mi 在哪個地方可以演奏出來就可以了,通常來說我們要流暢的彈出 1 2 3 4 5 6 7 i 需要一段時間,但是第一次彈奏出來以后會很開心。這個時候并不需要了解什么是把位,怎么切換把位。
通過 vim filename進入 Vim 以后,不能編輯文本,這時候 Vim 在 Normal 模式下。正如一些筆記軟件默認是不開放編輯的,只有點了編輯按鈕才能輸入,而像 Sublime 這樣的編輯器,你只要打開了某個文件,隨時都可以輸入。這樣當然提供了便利性,但是很容易造成誤操作,改變文件內容和狀態。
- 如果需要編輯,鍵盤按 i 就可以進入 Insert 模式,i你可以理解為是此模式的縮寫。此時下面會出現插入字樣;
- 在 Insert 模式下,可以像筆記軟件那樣編輯文件內容;
- 通過 Esc退出 Insert 模式,回到 Normal 模式
在 Normal 模式下,學會以下內容就入門了:
- i 進入 insert 模式,編輯內容;
- 光標鍵(←↓↑→) 進行移動;
- 刪除光標位置的字符:x
- 刪除光標那一整行:dd
- 粘貼已復制的內容:p
- 保存(w)+退出(q):wq
基本上以上操作足以讓我們完成很多的操作內容,現階段需要做的是將這些指令訓練成肌肉記憶,可以每天刻意用 Vim 來寫日記,編輯一些文檔,或者訓練不用自動補全和提示寫代碼的能力。
稍微熟練以后將光標鍵換成hjkl進行移動,這樣更符合手放在鍵盤上的位置,如果不記得哪個鍵是做什么用的,輸入:help 鍵名 尋求幫助。養成一個習慣,insert 模式下編輯完,只要有可能做其他事情,有事沒事按按 Esc 退回 Normal 模式來保證數據的安全。如果有必要,借助鼠標操作。
快速定位階段
在生存階段的命令沒有到肌肉記憶的程度時,盡量不要逼自己學習過多的命令,欲速則不達,好東西都需要慢慢享受。Vim 在 Normal 模式下,所有鍵都會變成命令執行對應的指令。
光標的快速移動
- ^ 行首;
- $行尾;
- :3 跳到第 3 行;
- G 跳到最后一行;
- :/string 定位文字,string就是要定位的文字,可以是正則表達式。當查找到多個結果時,n 鍵切換到下一個;
- w 下一個單詞首;
- *下一個相同的單詞,# 上一個相同的單詞;
- % 專門用來匹配括號的。編程語言很多不知道自己處于哪一個括號內。
多種插入形式
之前我們說過 i 可以切換到 insert 模式,實際上還有其他鍵也可以:
- a 在光標后一位插入,通常用在行末的時候;
- o 在下一行插入;
- O在上一行插入;
文件操作
除了 :wq 還有其他操作:
- :q!不保存強制退出;
- :w path_of_filename 保存為 filename 的文件;
- :saveas path_of_filename另存為;
- :e another_file 打開另一個文件:
- :n 或者加file/tab鍵觀察 打開下一個文件,如果加 file 開指定的文件,可以用 tab 鍵觀察補全
快速回撤前進
- u undo,回撤
- Ctrl + r redo,前進
- . 做大量重復工作的利器,表示執行上一個指令;
- 5. 重復執行上一個指令 5 次;
- 5<command> 重復執行 command 這個指令 5 次
熟練階段
到目前為止,主流編輯器的基本功能 Vim 通過鍵盤基本上都實現了,對于塊級操作,命令存在天然的劣勢,畢竟鼠標長按一下可以選擇太多的區域,Vim 的塊級操作同樣不復雜:
- Ctrl + v 進入塊級操作;
- 光標移動,光標鍵或者其他命令;
- I + --, 操作。I 進入插入模式,插入 --;
命令 v 和 V 表示可視選擇,如果我們需要對一段代碼左右縮進:
- v 進入可視;
- 光標移動,光標鍵或者其他命令;
- > 或者 <, 分別表示右縮進和左縮進
在 insert 模式下,可以使用 ctrl + p 自動補全。
分割布局
- :vs file 水平開一個文件
- :sp file 垂直開一個文件
封神階段
用 Vim 打造 IDE
宏錄制
這個階段我直接放棄了。不行了,白頭發出來了。
可自行搜索。。。
總結
- 學些 Vim 的過程真可謂酸爽;
- 一個命令用熟練了感動得眼淚掉下來;
- 很多枯燥的東西都是有大用處的,這時候能狠下心來啃對自己的心智也是個大的提升;
- 雖然離 Vim 黨還有距離,可怎么感覺自己不一樣了呢?有懂這種體會的嗎?
學習資料
- Learn Vim Progressively
- Vimdoc user02.txt
轉載于:https://www.cnblogs.com/wagyuze/p/10260536.html
總結
- 上一篇: t3出行司机待遇(手机游戏热门视频)
- 下一篇: 南通百通怎么找回实名认证(南通市人民政府