前言
筆者早年剛入行的時候就接觸過Vim,當時還是真正的菜鳥,帶我的師父是一個華為骨干員工,猶記得他給我指導如何保存并關閉文本:按Esc,然后輸入:wq。還記得自己打開Vim編輯器,一個字符都敲不進去,然后問旁邊的同事(此人年紀輕輕,但是擅長linux,我們都叫他XX大佬),他邪魅一笑說“i”,我第一反應就是他故意逗我玩,然后他認真地說“你沒有聽錯,就是鍵盤上的i”。為何時隔多年我還記得這兩件微不足道的小事?原因就是初次接觸Vim留給我深刻的印象:神秘感!
講真,這幾年的工作中,我很少用Vim,可能是因為大多使用Windows操作系統。但是后來涉足跨平臺開發,甚至是嵌入式,就發現這東西還必須得會!因此,決定來個“朝花夕拾”。考慮到網上類似的教程非常之多,如果僅僅復制粘貼這些文字和命令,那么會非常枯燥無味,人們是不喜歡缺乏靈魂的事物的!你看,縱使我早年接觸過Vim,但是因為用進廢退,目前憑直覺能想起來的命令就是上述的那兩個小故事。每次真的要用,還要在網上搜索一番。
下面我會以一個小白的心態重新認識這個“老朋友”,盡量符合嬰兒認識事物的這個過程。
一、Vim安裝
運行
OK
下一步
我接受,下一步
下一步
下一步
改安裝路徑,安裝
完成
二、常用命令實踐
1.復現小故事情節
新建空文本
鼠標右鍵,用Vim編輯
按“i”,下面出現”—插入—"字樣,然后鍵入”hello”,再按“Esc”(切換模式,用于執行命令),敲入我師父傳授的“:wq”,則成功寫入和保存文本!
2.刪除字符,刪除整行,刪除單詞
按“x”刪除了Hello的首字母H,按”dd”刪除了第一行整行,按“dw”刪除了單詞This。
3.復制粘貼與剪切粘貼
按“yy”復制第一行,用↓鍵將光標移動到底端,按“p”進行粘貼;接著用↑鍵將光標移動到第2行,按”dd”剪切該行,用↓鍵將光標移動到底端,按“p”進行粘貼。
4.跳轉移動光標
按“gg”移動到文檔開始,按大寫”G”移動到文檔末尾,按“:3”移動到第三行,由此可以看出行號是從1開始編碼而非從0編碼。?
5.撤銷與重做
光標放到文檔開頭,按“dd”刪除第一行,按“u”撤銷刪除,按”Ctrl+r”再此刪除,按“u”再次撤銷刪除。
6.塊選擇
光標放到文檔開頭,按“v”選擇字符,按→和←鍵選擇多字符,再次把光標放到文檔開頭,按“Ctrl+v”選擇塊字符,按↓和→選擇塊區域。
7.設置行號
輸入“:set nu”設置行號,輸入“set nonu”取消行號。
8.查找替換
輸入“:%s/vim/VIM”,全文搜索小寫的vim將其全部替換為大寫的VIM。
9.拓展?
0:移動到行首;
$:移動到行尾;
ndd:刪除n行(包括當前行在內)
a:在光標后插入;
o:在當前行下方插入新行;
O:在當前行上方插入新行;
:split、:vsplit:分別水平和垂直分割窗口;
Ctrl + w、Ctrl + w:在窗口之間切換;
:w:保存文件;
:q:退出;
:q!:強制退出,不保存更改。
三、總結
vim的命令繁多,但常用的無非就是復制粘貼刪除等,能用到查找替換應付常規操作已經足夠了。對于筆者而言,把所有命令全死記硬背無疑是一種災難,提綱挈領,舉一反三才能把知識學活。另外,舍棄或許是另一種擁有,比如h/j/k/l可控制左/下/上/右,但總覺得沒有方向鍵用著直觀。因此,實踐中潛移默化的記憶是最有效的,本文僅作拋磚引玉之用。?