學習動機
作為程式開發人員,一路從Notepad++、VSCode、Eclipse,或多或少都有機會聽過vim,只為了追求極致的開發效率。看看國外直播主ThePrimeagen邊寫程式邊直播,行雲流水的編輯速度,我覺得...我的問題是出在英打。
基本操作
模式
- 命令模式 (Command Mode):查找字詞、離開等指令下達
- 正常模式 (Normal Mode):檢視檔案
- 插入模式 (Insert Mode):輸入、編輯
- 可視模式 (Visual Mode):範圍選取
- 一定要會的迷因:怎麼離開vim?
按下:進入命令模式,輸入q(quit),視情況加上!,表示強制退出
例如 :q!
- 正常模式下,左下上右移動
hjkl
- 常用組合
ciw : change inner word
caw: change all word
de: delete till end
db: delete till begin
yy: yank a line
dd: delete a line
u: undo
ctrl + r: redo
其實不難發現,如果指令改以英文進行思考,動作加上次數及要執行的指令,可以組合出很多種變化,在反覆進行這些操作後,思考上漸漸由
"指令是在做什麼事"
轉變成
"要做哪些指令,可以組合出我要的結果"
剩下的只有日積月累的肌肉記憶,至於其他像是巨集功能、對數字直接增減等額外處理方式,最為一個初學,我就不把重點方在這些上面了。
你該學vim嗎?
以下列出幾項使用vim半年以來,稍微習慣移動方式後,我所認為的優缺點:
優點
- 在別人眼裡看起來很厲害,手都不用離開鍵盤
- 基本上是純文字編輯器,占用系統資源少、檔案開啟跟操作速度反應很快
- 常用IDE大多都支援vim擴充套件,不用記多套按鍵組合
- 高度客製化,自行設定按鍵綁定
缺點
- 學習曲線高,要花點時間才能習慣操作模式
- 中英文混合編輯下,輸入法比較容易在進行切換時卡住
- 作為其他IDE的擴充套件,可能與原本的快捷鍵發生指令覆蓋或衝突
習慣了就會不想用vim以外的編輯方式
如果日常工作需要進行大量文字編輯作業,作職涯基本技能的一項學習項目,只能是加分,而不會是必須。隨後,當知道怎麼修改.vimrc加入各式各樣的功能,編輯器最終變得越來越像IDE,或許在IDE中使用vim會是良好的折衷方案,不論如何,僅僅只是基本的vim移動編輯操作,我認為還是值得學習的一項技能。
題外話

Redragon K565R RUDRA(青軸)
自從上次筆電鍵盤壞了以後,一直想買一把機械鍵盤外接使用。在研究了幾周、了解一些常見的軸體,去賣場試打了幾把,最後還是回家網購了一把折扣最多的鍵盤來入門。
今天剛到貨,整體的質感都蠻喜歡的,沒有多餘的邊框,至於9段RGB燈光模式切換就不是我特別主要考量的點。前前後後摸了半小時,直到接上電源要打字的那一刻,才發現鍵帽上面少了注音符號,難怪視覺上清爽了許多。
至於打字起來有比較快嗎? 主觀感覺使用薄膜鍵盤時,打字速度比較快一點,用青軸打字時比較有段落感,不知不覺也會在輸入過程中稍作些停頓,青軸喀拉喀拉的聲響,某種程度上來說還挺紓壓,只不過換到午休中的辦公室或是宿舍,可就不一樣了。