Visual studio code 如何使vscode在插入时停止覆盖右括号

Visual studio code 如何使vscode在插入时停止覆盖右括号,visual-studio-code,vscode-settings,Visual Studio Code,Vscode Settings,当我尝试添加右括号时,它总是覆盖右边的下一个括号 这是一个屏幕截图(看起来我按了键盘上的右键,但实际上我插入了一个新的右括号): 是否可以更改此行为?尝试: 要完全禁用自动关闭括号功能。从1.38版开始,答案是“是”,您可以完全关闭它,同时仍保留自动关闭括号 该版本引入了一个新设置,editor.autoClosingOvertype,它可以采用三个可能的值: 始终-始终改写结束语(旧的、经典的、崇高的、受文本启发的行为) auto-“智能”改写,尝试检测编辑器是否自动插入了结束参数,并仅改

当我尝试添加右括号时,它总是覆盖右边的下一个括号

这是一个屏幕截图(看起来我按了键盘上的右键,但实际上我插入了一个新的右括号):

是否可以更改此行为?

尝试:


要完全禁用自动关闭括号功能。

从1.38版开始,答案是“是”,您可以完全关闭它,同时仍保留自动关闭括号

该版本引入了一个新设置,
editor.autoClosingOvertype
,它可以采用三个可能的值:

  • 始终
    -始终改写结束语(旧的、经典的、崇高的、受文本启发的行为)
  • auto
    -“智能”改写,尝试检测编辑器是否自动插入了结束参数,并仅改写这些参数(这是默认值)
  • 从不
    -从不改写结束页
版本1.37中引入了当前的默认行为。在那个时候,没有可用的设置,不管发生什么,你只是得到了“聪明”的改写行为

我把下面的资料留作历史用途


不,这是不可能的,这是设计的。当您键入全新的代码,并键入一个左括号时,您会自动获得右括号(当然,当您启用了
editor.autoclosingbarks
时)。然后,当您在这些括号内输入完您想要的内容后,您将如何“退出”并将结束括号保留在原来的位置?最自然的方法是键入一个闭合括号!有些人不同意,但许多打字员发现这比将手一直伸到箭头键或鼠标上移动过去要容易得多

请注意,这种行为在很大程度上是受到升华文本的启发和模仿的

了解自动关闭括号功能主要不是用于保存击键可能会有所帮助。相反,它的主要目的是提高语法突出显示的稳定性(如果有未闭合的括号,则会变得不稳定),其次是帮助防止忘记键入闭合括号。如果您碰巧因为其他原因离开了,而没有键入它,那么恭喜您,您确实免费获得了该括号

如果要添加括号(请注意,在您的示例中,您可能会添加不匹配的括号),最简单的两个选项是:(1)在键入新括号之前,将光标放在右括号的后面,或者(2)将光标放在原来的位置,但只需继续键入右括号,直到添加新括号。在这两种情况下,任何新的括号都只会添加到集群的末尾

更新(现已过时):

值得一提的是,现在在跟踪器上有一个用于此的,以及一个用于创建允许您关闭“支架吞咽”的设置。对于正在阅读本文的任何人,如果您感兴趣,您应该给出关于pull请求的反馈

进一步更新(现已过时):


目前正在进行测试,该测试将。计划是让编辑器跟踪自动生成的括号,并且只在这些括号上键入内容。一旦光标离开方括号区域,编辑器将停止跟踪这些方括号,这些方括号将成为“完整”字符,无法再输入。希望这能在有用的地方保留泛型,在不有用的地方消除泛型。请注意,当前计划是将此新行为变为标准行为,并设置一个控制其是否生效的设置。

使用VSCode原始设置的方法是在括号列表的末尾添加新括号

...if (test === funFunction(data))| /* <- here */ {...

…如果(test==funFunction(data))|/*Vscode最终解决了这个问题,您不需要做任何事情来获得新的行为。现在,它将只吞下自动添加的括号,所以一切都按预期进行。如果您已经从“设置”中禁用了“自动关闭括号”选项,建议现在再次启用它。

从技术上讲,它解决了我的问题……但我实际上喜欢自动关闭功能。我只是不喜欢自动覆盖的东西。我同意OP(kundasaba);i、 e.我喜欢在添加“(”时自动关闭,但不喜欢在键入a')”时省略“')”。当编辑包含大量嵌套的现有代码时,这确实是个问题。此外,当添加“(”而不是最里面的“(“/”)对时,“自动关闭”似乎不起作用。我更改了此项,但没有任何效果。即使在重新启动后也是如此。这让我抓狂:(该功能完全有道理,只是实现太幼稚了,没有用处。它不验证括号是否匹配,因此很难添加缺少的括号。@阿尔瓦罗冈萨雷斯-我听到你的意思,但我不确定是否有任何“聪明”的地方。)处理这个问题的方法。仅仅检查括号是否匹配不足以处理所有合理的情况。如果你的软件不能读懂你的心思,那么下一个最好的方法就是让你的软件具有易于定义、可预测的行为(即使它很幼稚),这样您就可以适应它。如果您根本无法适应该功能,在这种情况下,您可以幸运地将其完全关闭。(就个人而言,我已将其关闭,但出于其他原因。)我发现这些自动关闭帮助程序与其说是有用的,不如说是一种阻碍。尤其是当您需要返回并将
if
拆分为嵌套的
if
或其他各种实例,在这些实例中您要修改一些现有代码时。在第一次键入代码时通常不会出现问题。我将所有这三个选项都关闭:
“editor.autoClosingQuotes”:“从不”
“editor.autoclosing括号”:“从不”
,和
“editor.autoSu”
...if (test === funFunction(data))| /* <- here */ {...