问题描述
当一个片段(对于任何语言)被触发,并且光标移动到一个制表位时,该区域被“选中”(也就是说,你仍然处于“片段模式”,你可以转到另一个标签-停止)。但是我想摆脱这种“代码段模式”(例如,在制表符停止后没有选择区域),因为它会抑制智能感知(触发代码段后的选定区域接受任何内容,因此它不再建议智能感知功能,变量等。vscode 中是否有设置可以在代码段被触发后禁用此“选择”?
解决方法
我认为这不可能。
代码段通常具有占位符,例如 ${1:name}
以指示该制表位中的预期内容。
以这个为例:
"JS arrow function": {
"prefix": "af","body": [
"const ${1:name} = (${2:props}) => {","\t$3","}"
],"description": "Create arrow function"
}
使用 tab 会循环遍历 $1、$2 和 $3,并且对于 $1 和 $2 有一个占位符。
如果需要,您可以省略占位符:
"JS arrow function2": {
"prefix": "af2","body": [
"const $1 = ($2) => {","description": "Create arrow function"
}
但是除非您按下退出键,否则 instellisense 将无法工作。
如果您更喜欢自定义片段并避免占位符,您可以在全局或每种语言中添加自己的片段。
有关详细信息,请参阅此 link。