如何配置VSCode的Vim扩展实现多次缩进无需重复选中区域
VSCode Vim扩展多行连续缩进配置方案
问题本质
VSCode的Vim扩展默认关闭了「可视模式下执行缩进操作后保持选区高亮」的特性,所以每次缩进后选中状态会消失,和原生Vim的默认行为不一致。
配置步骤
方案1:通过图形化设置界面配置
- 打开VSCode设置页:Windows/Linux按快捷键
Ctrl+,,Mac按快捷键Cmd+, - 在顶部搜索框输入配置项名称
vim.keepVisualSelectionAfterIndent - 勾选对应配置项的复选框,将值设为
true - 重启VSCode或者重载Vim扩展后生效
方案2:通过settings.json配置
- 按下
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac)调出命令面板,输入Open Settings (JSON),回车打开配置文件 - 在JSON配置中添加如下代码:
"vim.keepVisualSelectionAfterIndent": true
- 保存文件后配置自动生效
备选方案:自定义按键映射
如果上述配置不生效,可以通过修改按键映射实现相同效果:
- 调出命令面板,输入
Open Keyboard Shortcuts (JSON),回车打开按键映射配置文件 - 添加如下配置:
[ { "key": "shift+>", "command": "editor.action.indentLines", "when": "editorTextFocus && vim.active && vim.mode == 'Visual'" }, { "key": "shift+<", "command": "editor.action.outdentLines", "when": "editorTextFocus && vim.active && vim.mode == 'Visual'" } ]
- 保存文件后即可生效,缩进后会自动保持选区选中状态。
效果验证
配置完成后,按下SHIFT+V进入可视行模式选中多行,连续按SHIFT+>或SHIFT+<即可连续调整缩进,选中区域会保持高亮,无需重复选择,和原生终端Vim行为一致。
内容的提问来源于stack exchange,提问作者Schneems
相关产品推荐
相关产品推荐

