VSCode VIM Part I - EasyMotion

VSCode VIM Part I - EasyMotion

Preview

VSCode 作为宇宙第一 IDE☝🏻,在文本跳转上体验比 LazyVim 稍逊一筹。发现 VSCode Vim 插件支持 easymotion 插件,在此基础上改改键位映射可以实现对 LazyVim 的拙劣模仿, 效果如下

当然也可以下载 neovim 插件,可以直接在 VSCode 中使用 LazyVim 的插件。据说 neovim 插件的性能更佳、但稳定性无法保证。

Steps

Install VSCode Vim Extension

SHELL
code --install-extension vscodevim.vim
Similar Extensions

如果不习惯 Vim 的操作方式,可以使用以下扩展来实现类似的功能:

Modify settings.json

将如下配置粘贴到 VSCode 的 settings.json 文件中, use catppucin mocha theme btw

JSON
{  // leaderkey,这里设置为等号键  "vim.leader": "=",  // 启用 EasyMotion  "vim.easymotion": true,  // Catppuccin Mocha Color Scheme  "vim.easymotionDimBackground": true,  "vim.easymotionMarkerBackgroundColor": "#1e1e2e",  "vim.easymotionMarkerForegroundColorOneChar": "#f38ba8",  "vim.easymotionMarkerForegroundColorTwoCharFirst": "#fab387",  "vim.easymotionMarkerForegroundColorTwoCharSecond": "#f9e2af",  "vim.easymotionIncSearchForegroundColor": "#a6e3a1",  "vim.easymotionDimColor": "#6c7086",  "vim.easymotionMarkerFontWeight": "bold",  // LazyVim-Like Key Bindings  "vim.normalModeKeyBindings": [    {      "before": ["s"],      "after": ["<leader>", "<leader>", "/"]    },    {      "before": ["f"],      "after": ["<leader>", "<leader>", "f"]    },    {      "before": ["F"],      "after": ["<leader>", "<leader>", "F"]    }  ]}
Keybinding Remap

VSCode Vim 插件应该是不支持直接修改 EasyMotion 的 keybinding 的,上面的设置算是一种变通方法。
<leader><leader> / <char> ... <CR 为例,在normalModeKeyBindings中添加一个映射,这样在按下 s 键时就会被替换为 <leader><leader> /,然后再输入任意字符进行搜索即可

Keybinding Reference

Motion CommandDescription
<leader><leader> s <char>Search character
<leader><leader> f <char>Find character forwards
<leader><leader> F <char>Find character backwards
<leader><leader> t <char>Til character forwards
<leader><leader> T <char>Til character backwards
<leader><leader> wStart of word forwards
<leader><leader> bStart of word backwards
<leader><leader> lMatches beginning & ending of word, camelCase, after _, and after # forwards
<leader><leader> hMatches beginning & ending of word, camelCase, after _, and after # backwards
<leader><leader> eEnd of word forwards
<leader><leader> geEnd of word backwards
<leader><leader> jStart of line forwards
<leader><leader> kStart of line backwards
<leader><leader> / <char>... <CR>Search n-character
<leader><leader><leader> bdtTil character
<leader><leader><leader> bdwStart of word
<leader><leader><leader> bdeEnd of word
<leader><leader><leader> bdjkStart of line
<leader><leader><leader> jJumpToAnywhere motion; default behavior matches beginning & ending of word, camelCase, after _ and after #

Ref

VSCodeVim/Vim: ⭐ Vim for Visual Studio Code
ggandor/leap.nvim: Neovim’s answer to the mouse 🦘

VSCode VIM Part I - EasyMotion

https://vluv.space/vscode_easymotion/

作者

GnixAij

发布于

2025-06-26

更新于

2025-09-06

许可协议

评论