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

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

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

Modify settings.json

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
    // 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-06-27

许可协议

评论