要将其作为一个简单的片段执行,您的光标必须已经位于该行的末尾:
{
"key": "alt+-", // choose your own keybinding
"command": "editor.action.insertSnippet",
// delete next line if using block comment form for all filetypes
"when": "editorTextFocus && !editorReadonly && resourceExtname =~ /\\.(html|scss|css)/"
"args": {
"snippet": " $BLOCK_COMMENT_START $1 $BLOCK_COMMENT_END"
// "snippet": " $LINE_COMMENT $1 "
}
},
有两个版本的片段变量可用于此:$BLOCK_COMMENT_START
和 $LINE_COMMENT
. 您可能更喜欢其中一种,但$BLOCK_COMMENT_START
似乎适用于更多语言,例如 html,其中$LINE_COMMENT
版本在行尾触发时不执行任何操作。
您可以制作此代码段的两个版本:一个带有$BLOCK_COMMENT_START
语言版本,而$LINE_COMMENT
仅通过修改resourceExtname
如上所示的子句用于语言版本。
或者,要获得更多功能,您可以制作一个宏。然后,您可以从行中的任何位置触发 EOL 注释。使用多命令扩展,把它放在你的 settings.json 中:
"multiCommand.commands": [
{
"command": "multiCommand.insertBlockCommentEOL",
"sequence": [
"cursorLineEnd",
{
"command": "editor.action.insertSnippet",
"args": {
"snippet": " $BLOCK_COMMENT_START $1 $BLOCK_COMMENT_END"
}
}
]
}
],
然后是一些键绑定:
{
"key": "alt+-",
"command": "multiCommand.insertBlockCommentEOL",
// remove below if using block comment form for all languages
"when": "editorTextFocus && !editorReadonly && resourceExtname =~ /\\.(html|scss|css)/"
}
关于注释形式的注释与上面相同:块或行注释。您可以制作一个名称略有不同的宏的副本,然后制作另一个键绑定(使用相同的触发器),但when
对于不同的语言使用不同的子句,这将触发另一个使用行注释的宏。
我将在这里展示其他形式(但如果您可以使用块注释形式,您可能不需要它们,在这种情况下,只需从上面第一个子句&& resourceExtname =~ /\\.(html|scss|css)/
的末尾删除)。when
{
"command": "multiCommand.insertLineCommentEOL",
"sequence": [
"cursorLineEnd",
{
"command": "editor.action.insertSnippet",
"args": {
"snippet": " $LINE_COMMENT $1"
}
}
]
}
和
{
"key": "alt+-",
"command": "multiCommand.insertLineCommentEOL",
"when": "editorTextFocus && !editorReadonly && resourceExtname =~ /\\.(js|ts|php)/"
}
如果这一切都不清楚,请告诉我。这是使用两种注释形式的不同文件的演示(如图所示,如果您使用多行选择触发宏,则注释将仅使用光标添加到行尾 - 尽管它可能被修改为在所有选定行的末尾添加注释):
