跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

VSCode如何设置Vim快捷键模式_VSCode Vim快捷键模式设置指南

VSCode 中 Vim 模式需手动配置才能正常工作:启用插件后须设 vim.useCtrlKeys 和 vim.useSystemClipboard 为 true,编辑 keybindings.json 实现 jj 退出插入模式,并按语言禁用非必要场景的 Vim 模式。 VSCode 里 Vim 模式不是装完插件就自动“开箱即用”的,
vscodevim
默认行为偏保守,很多关键映射(比如
Ctrl+k
跨行滚动、
jj
退出插入模式)都得手动开;不配置好,按
Esc
没反应、
hjkl
不动、
p
粘不出内容,全是正常现象。 安装后没反应?先确认插件真激活了 常见错误现象:装完
vscodevim
,打开文件按
Esc
,状态栏没出现
-- NORMAL --
,
hjkl
也不动。 检查扩展面板里
vscodevim.vim
是否显示「已启用」,不是「已安装但未启用」 必须打开一个真实文件(比如
index.js
),不能是空标签页或设置页——焦点要落在编辑器内 重启 VSCode 或执行
Developer: Reload Window
,某些旧版本或远程开发环境需要重载才加载 Vim 状态机 禁用其他键位类插件:
Emacs Keymap
、
Sublime Text Keymap
会劫持
Ctrl+Shift+P
等核心组合,导致 Vim 模式初始化失败 基础移动和粘贴失效?改这两个设置最要紧
vim.useCtrlKeys
和
vim.useSystemClipboard
是影响体验的两个开关,不设它们,
Ctrl+k/j
不滚动、
y/p
和系统剪贴板不通。
vim.useCtrlKeys
设为
true
:让
Ctrl+k
、
Ctrl+j
等在 Normal 模式下真正生效(否则被 VSCode 原生快捷键吞掉)
vim.useSystemClipboard
设为
true
:否则
yy
复制的内容无法用
Ctrl+V
粘到浏览器/终端,外部复制的内容也
p
不出来 别只改 UI 设置界面——有些配置项(如
vim.handleKeys
)必须进
settings.json
手动加,例如:
"vim.handleKeys": { "": false, "": false }
,不然 Ctrl 键仍被拦截 想用
jj
代替
Esc
?直接写进 keybindings.json 这是高频自定义需求,但不能靠 UI 设置完成,必须编辑快捷键 JSON 文件,且条件判断要写准,否则在非 Vim 场景下误触发。 VSCode 1.118 微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。 下载 执行
Preferences: Open Keyboard Shortcuts (JSON)
在数组里加这段(注意逗号分隔):
{ "key": "j j", "command": "extension.vim_escape", "when": "editorTextFocus && vim.mode == 'InsertMode'" }
别漏掉
when
条件:
vim.mode == 'InsertMode'
保证只在插入模式下生效,避免在 Normal 模式下按
jj
意外退出 保存即生效,不用重启;如果无效,检查控制台是否有
ReferenceError: vimState is not defined
,说明插件根本没加载 哪些文件不该开 Vim 模式?按语言粒度关 全局启用 Vim 模式后,编辑
.json
、
.md
或设置页时,
dd
删整行、
ci"
改引号内容容易误操作,反而拖慢节奏。 进
settings.json
,加 language-specific 配置:
"vim.enableNeovim": false, "[json]": { "vim.enable": false }, "[markdown]": { "vim.enable": false }, "[typescript]": { "vim.enable": true }, "[python]": { "vim.enable": true }
vim.enable
是语言级开关,比全局
vim.enable
优先级高 注意:只有已注册的语言标识符才有效,比如
[javascript]
、
[typescript]
,不能写成
[js]
或
[ts]
真正卡住人的从来不是怎么配,而是配完发现
Ctrl+v
进不了可视块模式——那大概率是某个语言扩展(比如 Prettier、ESLint 插件)把
Ctrl+v
绑定成格式化命令了,得去
keybindings.json
里搜
ctrl+v
,把冲突项的
when
改成
false
或删掉。

相关文章