刚刚完成从Netbeans到VS Code的过渡,而VS Code中缺少一件事,而Netbeans却让我很想念,当您在字符串中按Enter键时,它实际上会自动处理引号。
这些图片应该显示我的意思,第一张图片是Netbeans中的一个长字符串。
这是我在不按任何其他键的情况下在字符串中间某处按Enter键
您会看到它在光标所在的位置加上了引号,添加了换行符,增加了缩进,添加了一个点(PHP concat运算符),然后添加了另一个引号,这是一个很棒的功能。
两件事;这叫什么,如何在VS Code中获得这种行为?
答案 0 :(得分:1)
使用宏非常容易。安装macrosRE extension。
在您的settings.json中:
"macros": {
"netbeans": [
{
"command": "type",
"args": {
"text": "\"\n\t\t. \""
}
}
]
},
并在keybindings.json中为其设置一些键绑定:
{
"key": "ctrl+alt+n",
"command": "macros.netbeans"
},
如果有一个“ when
”条件来检测是否在字符串中(以及在php文件中),然后绑定到 Enter ,这将非常有趣。但我怀疑是否有这样的“ when
”子句。
[ EDIT ]:
我应该记得,在您的情况下,“宏”非常简单,因此您无需使用宏功能。在您的keybindings.json中尝试一下:
{
"key": "ctrl+alt+n",
"command": "editor.action.insertSnippet",
//"when": "editorTextFocus && editorLangId == php",
//"when": "editorTextFocus && resourceLangId == php"
"args": {
"snippet": "\"\n\t\t. \""
}
}
它只是在args中插入一个代码段。您可能会或可能不希望使用“ php”限制。如果要插入实际上存在于摘要文件中的摘要,也可以使用以下方法:
{
"key": "cmd+k 1",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus",
"args": {
"langId": "csharp",
"name": "myFavSnippet"
}
}
来自vscode doc: assigning a keybinding to a snippet。
但是您最终将希望将宏扩展允许您执行的命令链接在一起。