可以在行尾创建一个 VS Code 键盘快捷键用于评论吗?
Possible to create a VS Code Keyboard Shortcut for Comment at End of Line?
有没有办法在 VS Code 中创建键盘快捷键,以便我可以在代码行末尾开始注释(如果适用,创建开始和结束注释括号)? - 就像这样:
<h3>Example</h3>
<div class="keyboard-shortcut"></div> <!-- comment here -->
<h3>Example</h3>
我知道使用 Ctrl+/ 或 Ctrl+K Ctrl+C(我正在使用 Ubuntu Linux)- 以便像这样注释掉整行或选择:
<h3>Example</h3>
<!-- <div class="keyboard-shortcut"></div> -->
<h3>End of Line</h3>
此处使用了一个 HTML 示例,但我想使用键盘快捷键在任何常用编程语言的行尾开始注释 - 就像我在空白处开始注释一样线.
我知道如何创建自定义键映射。我想知道上述操作是否可行 - 或者是否存在用于完成此任务的扩展。
或者是否必须创建自己的扩展才能实现这一目标?
要将此作为一个简单的片段来执行,您的光标必须已经位于行尾:
{
"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 $BLOCK_COMMENT_END"
// "snippet": " $LINE_COMMENT "
}
},
有两个版本的片段变量可用于此:$BLOCK_COMMENT_START
和 $LINE_COMMENT
。您可能更喜欢其中一种,但 $BLOCK_COMMENT_START
似乎适用于更多语言,例如 html,其中 $LINE_COMMENT
版本在行尾触发时不执行任何操作。
您可以制作此代码段的两个版本:一个使用 $BLOCK_COMMENT_START
语言,另一个使用 $LINE_COMMENT
语言,只需修改 resourceExtname
子句即可,如上所示。
或者,要获得更多功能,您可以创建一个宏。然后,您可以从行中的任何位置触发 EOL 注释。使用 the multi-command extension,将其放入您的 settings.json:
"multiCommand.commands": [
{
"command": "multiCommand.insertBlockCommentEOL",
"sequence": [
"cursorLineEnd",
{
"command": "editor.action.insertSnippet",
"args": {
"snippet": " $BLOCK_COMMENT_START $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)/
22=] 上面的子句)。
{
"command": "multiCommand.insertLineCommentEOL",
"sequence": [
"cursorLineEnd",
{
"command": "editor.action.insertSnippet",
"args": {
"snippet": " $LINE_COMMENT "
}
}
]
}
和
{
"key": "alt+-",
"command": "multiCommand.insertLineCommentEOL",
"when": "editorTextFocus && !editorReadonly && resourceExtname =~ /\.(js|ts|php)/"
}
如果这一切都不清楚,请告诉我。这是一个使用两种注释形式的不同文件的演示(如所演示的,如果您使用多行选择触发宏,则注释将仅使用光标添加到行的末尾 - 尽管它可能被修改为在所有选定行的末尾添加注释):