思考速度多快 寫程式速度就多快
Vim 編輯器的內容,多到可以獨立的出一本書來說明。
例如我看過的 「Vim 實用技巧」一書,影片內的部分知識就是取自於此。
這次除了 編輯器的好壞處比較以外,後面指令說明的部分,只會就簡單的文本編寫動作的延伸介紹。
其他的可視模式、命令行模式、剪貼簿、書籤、巨集的功能部分
在 Vim 編輯器 入門指南 (下) 會繼續說明。
通常想要提升開發速度的開發者,都會熟記 IDE 的快捷鍵,以減少手部離開鍵盤操控滑鼠的時間。
不使用「滑鼠」,只使用「鍵盤」的文字編輯器
鍵盤上的每一個按鍵,都代表了一種指令 ; 這些指令,就像是語言一樣,有自己的語法與邏輯。
可以讓你用最少的動作 完成最多的事情
依據我這些年使用的開發經驗,個人認為 Vim 的編輯器有「三點好處」與「三點壞處」
好處一: 速度快
開啟檔案快
編輯速度也快
也就是開發速度快
如果是一個非常小的修改任務
使用終端機: 找到目標 -> 開啟檔案 -> 編輯 -> 修改 -> 完成
這一套流程,可能 IDE 才剛跑完 啟動的畫面
好處二 : 精準
我希望 :
或者
大腦想要的編輯動作 -> 鍵盤精準達成
(不需要滑鼠手眼協調才能大致定位)
好處三 : 酷
身為專業的開發者,肯定是希望「快捷鍵」高速連按。如此才能滿足想像中「駭客」的模樣 :
對著黑屏白字的「終端機」,鍵盤高速連打。
壞處一 : 中文輸入不方便
所有的編輯指令,都必須在英文的輸入法下才能作用。
如果編輯的文件中有中文的部分,就必須要常常進行輸入法的切換。
造成影響
有時候,
指令如果下得太快,沒有切換成功,
就會在中英文的交界處,發生嚴重堵塞。
(此時你可能就會開始思考人生的意義)
壞處二 : 不適用 Windowns 平台
就使用經驗而言 Vim 在 Windows 平台不太好用,除了剛才的輸入法問題以外
想要使用 Vim ,雖然有 GVim 圖形介面可以安裝,但相比於 Mac 與 Linux 終端機的各種操作與指令工具,兩者還是有很大的差異。
所以我在 Windowns 的平臺,不會硬要用終端機來作業
只會在 IDE 安裝相關插件
壞處三: 學習曲線高
Vim 的指令與指令之間,可以互相的組合與搭配
彼此的關係並不是,一對一 或者 一對多,而是 多對多的狀態
要了解這些指令執行後 ,會做了些什麼樣的動作,然後前方與後方可以再搭配什麼樣的指令
方能在編輯時:
選擇最佳的組合 -> 精準且快速的完成目標
要使用 Vim 的編輯器,如果是 Mac 或 Linux 系統,開啟終端機可能就有。
但如果是 Windows 的系統,個人建議可以使用 ,上一部影片介紹的 IntelliJ 安裝 Vim 插件 :
同樣可以安裝
將 vim 插件的快捷鍵,設定成: cmd + opt + 1
初期開發時,遇到不熟悉的指令,可以先切回來,用原本的方式完成任務。
指令操作的部分,建議看影片會比較容易了解
vim {檔案名稱}
ex: vim VimSE.txt
使用 vim 的編輯器開啟 VimSE.txt 檔案
開啟時,會有兩種情況 :
vim 指令輸入後的畫面,是 Vim 的「普通模式」, 也是編輯器的預設模式
方向鍵上下左右,可以移動光標。
但與多數的編輯器不同輸入任一按鍵並不會出現文字。這個是 Vim 獨特的地方,它具有多種模式
各種強大的編輯指令都是藉由此模式(普通模式)的狀態,進行指令下達
一般常用的文字編輯狀態,在 Vim 中稱之為「插入模式」
按鍵 i 進入該模式,進入後左下角的部分,會出現了 INSERT 的 文字
輸入完想要輸入的文字以後,按鍵 ESC 就可以退出這個模式,回到的地方就是預設的普通模式
編輯完成了,輸入 冒號 (:) 左下角的部分, 也出現了一個冒號
這個是 Vim 的「命令行模式」, 可以像終端機一樣輸入指令
:w
w 代表的是 存檔(write)
:q
q 代表的是 離開(quit)
:wq
兩者可以結合起來,代表存檔後離開
到了這一步驟,已經可以安全地從編輯器離開
未來如果在一個不得不使用 vim 的情況下,例如:
連線進 linux 主機 編輯配置檔案
你已經掌握最少可以行動的知識
但我想你要的不僅僅是可以動就好。
簡單的編輯一個檔案,還要經過三個模式,有夠麻煩。
接下來就會說明剛才流程中,還可以使用的其他進階功能。
如果對 vim 的操作沒有概念的話,同樣建議看影片會比較容易了解
清單列表
清單列表
清單列表
兩者皆可
普通模式下使用
光標的移動,除了方向鍵還可以使用小寫 h j k l 移動
方便的記法
j 看起來 像是箭頭 下, 所以 j 是 方向鍵 下, k 則是 方向鍵 上
可以讓你的雙手,隨時保持在鍵盤的中央,而不會歪斜在右下角。
當然一切還是以你的習慣為基準,不要為了用而用,
偶而使用方向鍵,也不是什麼大不了的事。
(書籍 : Vim 實用技巧 建議)
也聽說過有人把,方向鍵改成 wsad 第一人稱遊戲的移動方式
通常 vim 的指令,前方都可以加上數字來指定執行的次數
hjkl 就是光標移動的指令,所以也可以加上數字來搭配使用
例如
個人是常常使用 11j 22j 33j 或者 11k 22k 33k
重複的兩個數字加上方向,用來當作翻頁的功能
當然 vim 編輯器,並不是主要以這種方式移動,也有一些指令可以讓你一步到位
頁面定位
翻頁指令
光標定位
跳轉行數
為什麼會有兩種方式 ?
個人認為
冒號加數字是普通模式下,一般操作比較直覺好用
數字加G則是使用在錄製巨集時,為了輸入的連貫性避免進入到其他模式,造成操作的混亂情況
查找指令
假設已經找到目標行數了,接下來就是要使用光標的水平移動指令
水平移動指令
字符查找指令
example:
至此光標垂直與水平移動的指令,已經可以絕大多數的取代滑鼠的功能(起碼可以比滾輪的作用更加精準)
要像滑鼠點擊哪裡,就可以從哪裡開始編輯一樣直覺。
光標移動指令加上插入模式 i 指令,兩個以上的組合指令,並不是一個直覺的方法。
除了 i 指令, 可以進入該模式以外,還有以下可以指定進入模式的方法
進入插入模式指令
取代文字 example:
大寫的指令
退出插入模式
普通模式要延伸補充的,是尚未歸類到上方的分類,但又不得不提非常有用的指令。
數字遞增與遞減
此篇先只著重在簡單的文本編寫相關功能的延伸上,後續的可視模式、命令行模式
以及跟寄存器功能相關的剪貼簿、書籤、巨集,會在下一篇章中接著介紹。
我覺得光是前面說明的指令部分,應該就需要花一些時間消化吸收。
在更近一步說明之前,關於發揮 Vim 編輯器的威力,
還有一個更重要的前置條件必須要具備 :
那就是「盲打的能力」,也就是打字的時候不用看著鍵盤
假設輸入 Vim 的指令時,視線還要來回於鍵盤和螢幕之間,即便 指令背的在熟,速度也快不起來。
提供一個, 我剛開始練習時 找到的簡單方法 :
打開編輯器,鍵盤 a 到 z 的順序,以百次為單位練習,
每天練習 3 ~ 5 次,剛開始速度不用快,
先追求每次的正確性,逐漸熟悉後,速度自然就會起來。
一個禮拜的練習,應該就能很快看到效果。
https://zh.wikipedia.org/wiki/Vim
https://blog.techbridge.cc/2020/04/06/how-to-use-vim-as-an-editor-tutorial/
https://coolshell.cn/articles/5426.html