VSCode中按下*键替换选中文本而非包裹的设置方法
解决VSCode中按
*替换选中文本而非包裹的问题 你当前配置未生效的原因可能有两个:一是未安装multiCommand扩展,二是clipboardCutAction会修改剪贴板且执行逻辑不够直接,导致和默认的自动包裹行为优先级冲突。以下是两种可行的解决方案:
方案一:使用内置命令(无需第三方扩展)
直接利用VSCode内置的editor.action.replaceSelection命令,它可以直接将选中文本替换为指定内容,优先级高于默认的自动包裹行为:
{ "key": "*", "command": "editor.action.replaceSelection", "args": { "text": "*" }, "when": "editorTextFocus && editorHasSelection && !editorReadonly" }
将这段配置添加到你的keybindings.json中即可生效。
方案二:修复multiCommand配置(需安装扩展)
如果坚持使用multiCommand,先确保已在VSCode扩展商店安装multiCommand扩展,然后将配置改为更直接的删除+插入逻辑,避免剪贴板操作的干扰:
{ "key": "*", "command": "extension.multiCommand.execute", "args": { "sequence": [ "editor.action.deleteSelection", { "command": "type", "args": { "text": "*" } } ] }, "when": "editorTextFocus && editorHasSelection && !editorReadonly" }
额外排查步骤
如果配置后仍未生效,打开VSCode的「键盘快捷方式」面板(快捷键Ctrl+K Ctrl+S),搜索*,检查是否有其他快捷键的匹配条件与你配置的when规则重叠且优先级更高,如有可调整对应快捷键的条件或顺序。
内容的提问来源于stack exchange,提问作者Ahmad Ismail
相关产品推荐
相关产品推荐

