如何在我按 [ENTER] 之前阻止 VS Code 的建议自动插入?
How to stop VS Code's suggestions from auto inserting before I press [ENTER]?
出于某种原因,当我在 VS Code 中编辑的 CSHTML
文件中使用 @ 符号时,它会立即弹出一个建议框。每次我键入 @{ ... }
时都会发生这种情况,只要我按下 { 键,它就会用 [=12= 替换当前文本].我找不到可以切换此行为的设置 ON/OFF。我假设它是 JavaScript 类型的 Intellisense 设置,因为我正在编辑 .cshtml
文件?
这很烦人,如果可能我想将其关闭,但我不想为编辑器完全关闭 IntelliSense。
配置 VS 代码片段功能的行为
您可以通过将以下内容添加到您的 settings.json
文件中来阻止它这样做
{
"editor.acceptSuggestionOnCommitCharacter": false
}
什么是 "editor.acceptSuggestionOnCommitCharacter"
?
下面的定义是“semi-official”,因为它来自 VS Code 的 #default-settings 文档页面。你可能想看看,这是一个很好的资源。
"The "editor.acceptSuggestionOnCommitCharacter" setting Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (;
) can be a commit character that accepts a suggestion and types that character.
2BH,我真的不觉得 VS Code 文档给出的定义完全解释了那个设置是什么,因此;我在下面添加了输入。
你的写作 CSS,所以我假设你对 JS 或任何 C 风格的编程语言有所了解。我敢肯定大多数人都知道 Dot-notation Accessor(或 Access-operator)是什么。
在JavaScript中,当你写任何变量,或对象,或任何东西,并且它有一个你可以访问的属性时,你可以使用点访问器符号来访问属性 像这样。
sumObj.objProperty
好吧,在 VS Code 中,当智能感知检测到或以某种方式知道有一个 属性 您可以访问时,您只需按点“.”,而不用完成整行的输入。它将自动附加 属性。如果有不同的属性,您可以使用箭头键浏览要插入的检测到的智能感知 属性,然后按点。如果您没有完成输入 sumObj
部分,并且智能感知猜测这就是您正在输入的内容,您可以再次按“。”完成 sumObj,然后属性列表将 pop-up 你可以 select 一个。
我已经有一段时间没写 CSS 了,但我想您的建议在您按下 { 键时自动完成的唯一原因是因为这个功能。
替代解决方案:
如果你想保留这个功能,那么你可以尝试使用下面的设置。
{
"editor.suggest.insertMode": "insert"
}
上面的设置更改了建议小部件在您按 enter 键时的行为。 "editor.suggest.insertMode"
接受两个不同的参数:
"insert"
"replace"
您似乎已将 VS Code 配置为 "replace"
提示 suggestion-snippet 的代码。换句话说,如果您键入 string.l
,建议小部件显示 length
,然后您输入 select length
,您最终会得到 string.length
。前面的示例说明了为什么 replace 有时很好用。但是,如果您键入 "for("
并弹出 "int i=0; i < X; i++"
,则替换提示该建议的 "for("
文本将导致语法错误并显示为红色。
您也可以禁用片段:
下面的设置在添加到您的 settings.json
文档时将禁用设置和 emetts。就个人而言,我并没有那么多地使用建议。有时我会打开它们,有时我会关闭它们,这取决于项目。
{
"editor.suggest.showSnippets": false,
"editor.snippetSuggestions": "none",
"emmet.showSuggestionsAsSnippets": false
}
出于某种原因,当我在 VS Code 中编辑的 CSHTML
文件中使用 @ 符号时,它会立即弹出一个建议框。每次我键入 @{ ... }
时都会发生这种情况,只要我按下 { 键,它就会用 [=12= 替换当前文本].我找不到可以切换此行为的设置 ON/OFF。我假设它是 JavaScript 类型的 Intellisense 设置,因为我正在编辑 .cshtml
文件?
这很烦人,如果可能我想将其关闭,但我不想为编辑器完全关闭 IntelliSense。
配置 VS 代码片段功能的行为
您可以通过将以下内容添加到您的 settings.json
文件中来阻止它这样做
{
"editor.acceptSuggestionOnCommitCharacter": false
}
什么是 "editor.acceptSuggestionOnCommitCharacter"
?
下面的定义是“semi-official”,因为它来自 VS Code 的 #default-settings 文档页面。你可能想看看,这是一个很好的资源。
"The "editor.acceptSuggestionOnCommitCharacter" setting Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (
;
) can be a commit character that accepts a suggestion and types that character.
2BH,我真的不觉得 VS Code 文档给出的定义完全解释了那个设置是什么,因此;我在下面添加了输入。
你的写作 CSS,所以我假设你对 JS 或任何 C 风格的编程语言有所了解。我敢肯定大多数人都知道 Dot-notation Accessor(或 Access-operator)是什么。
在JavaScript中,当你写任何变量,或对象,或任何东西,并且它有一个你可以访问的属性时,你可以使用点访问器符号来访问属性 像这样。
sumObj.objProperty
好吧,在 VS Code 中,当智能感知检测到或以某种方式知道有一个 属性 您可以访问时,您只需按点“.”,而不用完成整行的输入。它将自动附加 属性。如果有不同的属性,您可以使用箭头键浏览要插入的检测到的智能感知 属性,然后按点。如果您没有完成输入 sumObj
部分,并且智能感知猜测这就是您正在输入的内容,您可以再次按“。”完成 sumObj,然后属性列表将 pop-up 你可以 select 一个。
我已经有一段时间没写 CSS 了,但我想您的建议在您按下 { 键时自动完成的唯一原因是因为这个功能。
替代解决方案:
如果你想保留这个功能,那么你可以尝试使用下面的设置。
{
"editor.suggest.insertMode": "insert"
}
上面的设置更改了建议小部件在您按 enter 键时的行为。 "editor.suggest.insertMode"
接受两个不同的参数:
"insert"
"replace"
您似乎已将 VS Code 配置为 "replace"
提示 suggestion-snippet 的代码。换句话说,如果您键入 string.l
,建议小部件显示 length
,然后您输入 select length
,您最终会得到 string.length
。前面的示例说明了为什么 replace 有时很好用。但是,如果您键入 "for("
并弹出 "int i=0; i < X; i++"
,则替换提示该建议的 "for("
文本将导致语法错误并显示为红色。
您也可以禁用片段:
下面的设置在添加到您的 settings.json
文档时将禁用设置和 emetts。就个人而言,我并没有那么多地使用建议。有时我会打开它们,有时我会关闭它们,这取决于项目。
{
"editor.suggest.showSnippets": false,
"editor.snippetSuggestions": "none",
"emmet.showSuggestionsAsSnippets": false
}