VSCode关于自动补全时Enter换行和选中的冲突问题

VSCode的自动补全方式确实感觉很逆天,我实现的效果就是
出现代码提示时按下Enter键不会进行补全而是会换行,只有使用Tab选中的情况下才会补全。Tab是用来上下移动选中补全代码的。

下面具体讲怎么实现的

开启设置里面的Editor: Accept Suggestion On Enter,别的文章我看都不开启,哈哈
在这里插入图片描述
editor.suggest.selectionMode选择never,这样补全代码出现时默认就不会选中

在这里插入图片描述

如何选中就靠Tab键了,先把Tab选中关了,Editor: Tab Completion

在这里插入图片描述

然后再设置一下Tab的行为就行了,在keybindings.json里设置

在这里插入图片描述

[
    {
        "key": "tab",
        "command": "selectNextSuggestion",
        "when": "suggestWidgetVisible"
    },
    {
        "key": "shift+tab",
        "command": "selectPrevSuggestion",
        "when": "suggestWidgetVisible"
    },
]

ok了。

### 配置 VSCode 使用 Enter 键自动添加分号 为了实现这一功能,可以利用宏扩展来绑定快捷键操作。具体来说,通过安装 `multi-command` 插件并编辑 `keybindings.json` 文件,能够定义当按下 Enter执行一系列命令,其中包括在当前行末尾添加分号的操作。 #### 安装 multi-command 扩展 前往 Visual Studio Code 的扩展市场搜索名为 `multi-command` 的插件,并完成安装过程[^1]。 #### 编辑 keybindings.json 文件 打开键盘快捷方式设置界面(可通过菜单栏中的「文件」-> 「首选项」 -> 「键盘快捷方式」访问),点击右上角图标切换至 JSON 模式,在此模式下向 `keybindings.json` 添加如下配置: ```json { "key": "enter", "command": "-acceptSelectedSuggestion" }, { "key": "enter", "command": "extension.multiCommand.execute", "args": { "sequence": [ "cursorEnd", "type", { "text": ";" }, "editor.action.insertLineAfter" ] } } ``` 上述代码片段实现了两个主要目标:一是阻止默认行为即接受建议列表中的选项;二是创建一个新的多步序列,该序列会先将光标移动到行尾(`cursorEnd`),接着模拟输入分号字符(`type`),最后在同一位置新增一行(`editor.action.insertLineAfter`)[^3]。 需要注意的是,由于直接修改了 Enter 键的功能,这可能会影响到其他依赖于原生 Enter 功能的工作流,因此建议测试调整后的效果再决定是否长期保留这些更改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值