儘管 VS Code 自帶的快捷鍵已經足夠強大 ,但存在一個問題:使用方向鍵是一個有些「反人類」的行為,雙手放在鍵盤上,如果只敲擊字母,那麼便無需移動手腕;如果需要去敲擊方向鍵,則需要移動手腕或者小臂。Vim插件讓絕大部分敲擊集中在字母的區域,讓操作更加快捷、舒適。本文我將推薦我常用的Vim操作。
目錄•Vim 插件安裝•Vim 基礎•VS Code 中常用 Vim 組合邏輯
Vim 插件安裝下載 Vim 插件如上圖,下載 Vim 插件。這裡需要注意,強烈推薦 不使用Vim自帶的組合快捷鍵 Ctrl ,因為其會覆蓋掉 VS Code 本身的快捷鍵以及其他插件的快捷鍵 。
如上圖,可以在 Settings 中搜索 useCtrlKeys 配置,並取消勾選。
值得注意的是,我們依然可以使用 Ctrl + u 和 Ctrl + d 實現上下滾動頁面,滾動行數默認為半頁大小。
Vim 基礎這裡要介紹的是 Vim 基礎中的基礎,但還是沒有 Vim 基礎的初學者也可以去 B 站搜索 Vim 相關的教程再鞏固一下(我之後也可能錄視頻)。
如上圖:
•Vim 中默認是 normal 模式,此時敲擊字母是在敲擊命令,而非編輯文本;輸入 i 進入 insert 模式,此時敲擊字母才是輸入字母•insert 模式下,退出鍵 Escape 回到 normal 模式•normal 模式下,hjkl分別是左下上右
如上:
•normal 模式下,Shift + a(以後記作A)移到行末,並轉為 insert 模式;I是行前•normal 模式下,o是下插一行,並跳轉
如上:
•normal 模式下,w是向前移動一個單詞,b則是向後移動一個單詞
如上:
•normal 模式下,d是開啟剪切模式,因此,dw則是剪切一個單詞;dd是剪切一行•normal 模式下,y則是複製,而p是粘貼
如上:
•normal 模式下,s是刪除當前光標所指並轉為 insert 模式,x是刪除並且不轉換
如上:
•normal 模式下,15gg是跳轉到15行
如上:
•normal 模式下,是開啟選中 visual 模式
VS Code 中常用 Vim 組合邏輯Vim 愛好者常說:Vim是一種邏輯,而非死記硬背快捷鍵(我還算不上 Vim 愛好者,這句話不是我說的,是 Linux 社區的一些朋友們說的)。
我對於 Vim 『邏輯』的理解,大概如下:
•大小寫是一種相反的邏輯•VS Code 中一些 Ctrl 與滾動•i(意味著在括號裡
展開的解釋如下文。
大小寫是一種相反的邏輯我們知道,當光標在_處時,想要刪除 _xyz ,那麼就要首先 找到最近的z的位置,然後刪除這個區間內的東西。 在 vim 中,則是輸入 dfz 來表達, fz 則是 找到 z 的意思 。
那麼,向前查找是什麼呢?答案是大寫的 F ,具體例子如上圖。
如上,用 o 可以很輕鬆地向下插入一行,而用 O 則是向上插入一行。
VS Code 中一些 Ctrl 與滾動如上,使用 Shift + [] 是以「代碼塊」為單位跳行。
如上,Ctrl + [] 實現縮進的調整。這裡結合了 visual 模式。
如上,[[ 跳到文件首行,而 ]] 則是行末。
如上,H 是到屏幕的頂部,L 是屏幕的底部,M 是屏幕的中央;而 zz 是『將光標放到屏幕中央,且不移動光標的位置(滾動屏幕)』,zt 是將光標放到頂部,zb 是底部。
i( 意味著在括號裡如上,當我們想清空 print() 函數括號內的東西,我們「有邏輯地」告訴 vim 即可。把光標移到括號內,輸入 ci( 或 ci),其中 i( 是『在括號內』。
如上,不僅是 c 操作,也不僅僅是 () ,對於 ""、[] 等都適用。
此外,還有很多邏輯可以組合,比如:j是向下跳轉一行,那麼 10j 就是向下10行。 此外,/ 查找功能在 vs code 中同樣適用。但是,我更喜歡 vs code 自帶的 ctrl + f 查找, vs code 自帶的組合鍵還有哪些妙用呢?我們下回分解。
好文章值得 點讚 在看 →關於 vim ,一定還有其他妙用,歡迎留言你的常用高效操作~
此外,推薦給大家推薦一本 vs code 的黑寶書,雖然我一般不建議購買「軟體類的工具書」,但是這本書還涵蓋了 vs code 的社區、歷史,由微軟的工程師韓老師撰寫。因為我是 vs code 社區中比較積極的志願者,所以有幸得到了本書的籤名款。非常全面,vs code 只有你想不到,沒有做不到(做不到去 github 上提 issue 呀,馬上就可以做到了),讀下來還是非常不錯的。我這裡提供一個連結,希望大家理性消費(畢竟挺厚的)。