VS Code 擴充功能推薦 Vim


建立時間: 2023年4月16日 12:34
更新時間: 2023年9月14日 08:23

介紹

Vim 是傳統的純文字編輯器,存在的歷史悠久,在快捷鍵上做了許多優化,基本上可以只靠鍵盤完成所有工作,還有許多指令可以減少按鍵點擊的次數,如果想用 VS Code 又想使用 Vim 的操作方式,就可以安裝 Vim 擴充功能實現。

為何不直接使用 Vim 編輯器

不直接使用 Vim 的原因有以下幾點

  1. VS Code 有比較好的圖形使用者介面
  2. VS Code 有豐富的擴充功能
  3. VS Code 安裝擴充功能較容易,在我以往的經驗,安裝 Vim 擴充功能,有些比較複雜。

安裝

在 Visual Studio Code Extensions 安裝 Vim 後就可使用

專屬 VS Code Vim 的快捷鍵

下列分享的內容都是專屬 VS Code Vim,關於 Vim 的操作,可以參考 Enjoy 軟體官網 Vim 的相關文章

切換模式

插入模式

命令 動作
⌘c 回到普通模式

在瀏覽器瀏覽

原本上下左右鍵,可以用 HJKL 替代。

  • H: 摺疊資料夾
  • J: 往下
  • K: 往上
  • L: 展開資料夾,或開啟檔案

好用的設定

這個設定類似在 vim 設定 .vimrc

settings.json

{
  // 使用 easymotion 外掛
  "vim.easymotion": true,
  // 高亮顯示搜尋匹配
  "vim.hlsearch": true,
  "vim.normalModeKeyBindingsNonRecursive": [
    {
      "before": ["<leader>", "%"],
      "commands": [
        {
          // 移動到相對 html tag
          "command": "editor.emmet.action.matchTag"
        }
      ]
    }
  ],
  // y 複製一併複製到剪貼簿
  "vim.useSystemClipboard": true
}

easymotion

這是一種標籤式移動方式,例如當你想往下移動,並且懶得想的時候,你會一直按 j 直到你要的行數,但是當你使用 easymotion,使用 <leader><leader> j 指令,easymotion 會在每一行的開頭都寫上一個標籤,可能是 a, b, c, d, e 或其他的,你只要輸入標籤就可以移動到標籤位置,

在古代就有人運用快速移動的方式在按摩上,只差在 easymotion 是直接在目的地下標籤,這樣更直觀並且可以設定更多位置。

massage clothes

關於 easymotion 文件可以參考這裡

最主要的是操作語法

動作指令 描述
<leader><leader> s <char> 搜尋字元
<leader><leader> f <char> 向前查找字元
<leader><leader> F <char> 向後查找字元
<leader><leader> t <char> 向前跳至字元前
<leader><leader> T <char> 向後跳至字元前
<leader><leader> w 向前跳至單字開頭
<leader><leader> b 向後跳至單字開頭
<leader><leader> l 向前匹配單字的開頭和結尾,小駝峰,_ 之後和 # 之後
<leader><leader> h 向後匹配單字的開頭和結尾,小駝峰,_ 之後和 # 之後
<leader><leader> e 向前跳至單字結尾
<leader><leader> ge 向後跳至單字結尾
<leader><leader> j 向前跳至行首
<leader><leader> k 向後跳至行首
<leader><leader> / <char>... <CR> 搜尋n個字元
<leader><leader><leader> bdt 跳至字元前
<leader><leader><leader> bdw 跳至單字開頭
<leader><leader><leader> bde 跳至單字結尾
<leader><leader><leader> bdjk 跳至行首
<leader><leader><leader> j JumpToAnywhere 動作;默認行為匹配單詞的開頭和結尾,小駝峰式,_ 之後和 # 之後

<leader><leader> (2s|2f|2F|2t|2T) <char><char><leader><leader><leader> bd2t <char>char> 也可用。不同之處在於搜索所需的字元數。例如<leader><leader> 2s <char><char> 需要兩個字元,按兩個字元查找。此映射不是標準映射,因此建議使用自定義映射。

surround

VS Code Vim 預設已經開啟 surround 外掛,此外掛可以更方便地修該圍繞的符號,例如:(),[]等等。

關於 surround 可以參考

Windows Ctrl 快捷鍵失效

在 Windows 系統,常用快捷鍵預設使用 ctrl 鍵,導致 vim 使用 ctrl 快捷鍵會讓 visual studio code 快捷鍵失效,比較快的辦法就是不要使用 vim ctrl 鍵,設定如下。

setting.json

{
    "vim.useCtrlKeys": false
}

另一個辦法是自定義快捷鍵,但這個部份我就沒有特別深入研究,以後有機會我再分享給大家。

參考

觀看次數: 1092
codestudiovimvisual
按讚追蹤 Enjoy 軟體 Facebook 粉絲專頁
每週分享資訊技術

一杯咖啡的力量,勝過千言萬語的感謝。

支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!