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

kun*_*aba 28 visual-studio-code vscode-settings

当我尝试添加右括号时,它总是覆盖右边的下一个括号.这是一个屏幕截图(看起来我按下键盘上的右键,但实际上我插入了一个新的右括号):

在此输入图像描述

是否有可能改变这种行为?

Mat*_*ner 13

尝试设置:

"editor.autoClosingBrackets": "never"
Run Code Online (Sandbox Code Playgroud)

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

  • 从技术上讲,它解决了我的问题...但我实际上喜欢autoClosing功能.我只是不喜欢自动覆盖的东西. (15认同)
  • 我同意OP(kundasaba); 即当我输入')'时添加'(',但不喜欢省略')'我喜欢自动关闭.在编辑具有大量嵌套的现有代码时,这确实存在问题.此外,添加'('不在最内层'('/')'对中时,自动关闭似乎不起作用. (10认同)
  • 我改变了这个,但没有任何效果。即使重启后。这真让我抓狂 :( (2认同)

Joh*_*n Y 8

不,这是不可能的,这是设计的.当您键入全新代码并键入左括号时,您将自动获得结束括号(editor.autoClosingOvertype当然,当您开启时).然后,当你完成在这些括号内输入你想要的任何内容时,你将如何"退出"并将结束括号留在原处?最自然的方式是键入一个结束括号!当然,这比将手一直移到右箭头键或鼠标移动过去要容易得多.

因此,该功能可以帮助您忘记键入结束括号,而不是一种方法来避免实际键入它.(虽然如果你碰巧在没有输入的情况下出于其他原因导航,那么恭喜你,你可以免费获得这个支架!)

如果你想添加一个支架(让我注意到,在你的榜样,你会加入你有两个最简单的选项不匹配的支架!)是:(1)把光标右括号集群在你面前键入一个新的括号,或(2)将光标放在您所做的位置,但只需键入右括号,直到添加新的括号.在任何一种情况下,任何新的括号都只会添加到群集的末尾.

对于它的价值,现在跟踪器上有一个问题.

  • 这个功能完全有道理,只是实现太天真而无用.它不验证括号是否匹配,因此更难添加*missing*括号. (12认同)
  • 我发现这些自动关闭的帮助程序比它有用的更多的障碍。特别是当您需要返回并将“ if”拆分为嵌套的“ if”或要修改某些现有代码的其他各种实例时。首次键入代码通常通常不会有问题。我将所有这三个选项都关闭:`“ editor.autoClosingQuotes”:“永不”`,`“ editor.autoClosingBrackets”:“永不”`,以及“ editor.autoSurround”:“永不”`。 (6认同)

kun*_*aba 2

Vscode 终于解决了这个问题,您无需执行任何操作即可获得新的行为。现在它只会吞下自动添加的括号,因此一切都会按预期进行。如果您已经从设置中禁用了 autoClosingBrackets 选项,建议现在再次打开它。