如果不习惯 Vim 的操作方式,可以使用以下扩展来实现类似的功能:
将如下配置粘贴到VSCode 的 settings.json
文件中, use catppucin mocha theme btw
{ // 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" ] }, ]}
VSCode Vim 插件应该是不支持直接修改 EasyMotion 的 keybinding 的,上面的设置算是一种变通方法。
以 <leader><leader> / <char> ... <CR
为例,在normalModeKeyBindings
中添加一个映射,这样在按下 s
键时就会被替换为 <leader><leader> /
,然后再输入任意字符进行搜索即可
Motion Command | Description |
---|---|
<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> w | Start of word forwards |
<leader><leader> b | Start of word backwards |
<leader><leader> l | Matches beginning & ending of word, camelCase, after _ , and after # forwards |
<leader><leader> h | Matches beginning & ending of word, camelCase, after _ , and after # backwards |
<leader><leader> e | End of word forwards |
<leader><leader> ge | End of word backwards |
<leader><leader> j | Start of line forwards |
<leader><leader> k | Start of line backwards |
<leader><leader> / <char>... <CR> | Search n-character |
<leader><leader><leader> bdt | Til character |
<leader><leader><leader> bdw | Start of word |
<leader><leader><leader> bde | End of word |
<leader><leader><leader> bdjk | Start of line |
<leader><leader><leader> j | JumpToAnywhere motion; default behavior matches beginning & ending of word, camelCase, after _ and after # |
VSCodeVim/Vim: ⭐ Vim for Visual Studio Code
ggandor/leap.nvim: Neovim’s answer to the mouse 🦘
VSCode VIM Part I - EasyMotion