Tab是vs代码中的智能感知和片段冲突

Kys*_*lox 8 autocomplete code-snippets visual-studio-code

我想以'for'代码段为例.我写了两次并按Tab键,所以它自动完成整个for循环并选择计数器,所以我可以改变它.我改变了然后按Tab键转到下一个变量(条件语句中的'counter <[here]').然后问题是我写'arr'并且它自动完成类似'ANGLE_instanced_arrays'的东西.我想写'arr'然后按tab键转到循环中的下一个变量,但是如果按Tab键它会自动完成.有解决方案吗

小智 11

我专门创建了一个帐户来回答这个问题,因为这是一个令人讨厌的问题:)

将以下内容添加到您的keybindings.json:

{"key": "tab", "command": "-acceptSelectedSuggestion", "when": "editorTextFocus && suggestWidgetVisible"},    
{"key": "tab", "command": "acceptSelectedSuggestion", "when": "editorTextFocus && suggestWidgetVisible && !inSnippetMode" },    
Run Code Online (Sandbox Code Playgroud)

第一行禁用现有规则,第二行重新启用它,除非您处于片段模式.

  • 在现代 VSCode 中,您无需关注第一行。只需打开“首选项:键盘快捷键”,找到“acceptSelectedSuggestion”,右键单击并选择“更改表达式”,然后将其设置为 Adam 上面所说的:“suggestWidgetHasFocusedSuggestion &amp;&amp; suggestWidgetVisible &amp;&amp; textInputFocus &amp;&amp; !inSnippetMode” (4认同)

Joh*_*ken 1

您可以做的是禁用接受建议tab并启用 pure tabCompletion。各自的设置为"editor.acceptSuggestionOnEnter": false"editor.tabCompletion": true。通过这些设置,您可以完成片段,例如for仅使用选项卡(不会弹出 IntelliSense),并且当 IntelliSense 显示建议只能接受enter