使 VSCode 的注释从列位置 0 开始
Make comments of VSCode start at column position 0
在VSCode中,当我按下组合键ctrl+/时,VSCode会评论选定的行,确保缩进完好无损。因此,如果一行代码从位置 16 开始,那么注释的双斜杠(即 //
)将位于位置 16,将代码向右移动一点。
我想设置一下,当我按ctrl+/时,评论双斜杠//
将始终从列位置 0 开始。这可能吗?
谢谢。
这是一种稍后更好的方法:
这有点棘手,但请测试一下。你需要一个像 multi-command.
这样的宏扩展
在你的keybindings.json中:
{ // disable ctrl+/ for js/php files only
"key": "ctrl+/",
"command": "-editor.action.commentLine",
"when": "editorTextFocus && !editorReadonly && resourceExtname =~ /\.(js$|php)/"
},
{ // call the macro multiCommand.insertCommentColumn0 when
// commenting a single line
"key": "ctrl+/",
"command": "extension.multiCommand.execute",
"args": { "command": "multiCommand.insertCommentColumn0" },
"when": "!editorHasSelection && editorTextFocus && !editorReadonly && resourceExtname =~ /\.(js$|php)/"
},
{ // call the macro multiCommand.AddCommentColumn0MultipleLines when
// commenting more than one line
"key": "ctrl+/",
"command": "extension.multiCommand.execute",
"args": { "command": "multiCommand.AddCommentColumn0MultipleLines" },
"when": "editorHasSelection && editorTextFocus && !editorReadonly && resourceExtname =~ /\.(js$|php)/"
},
{ // call the command editor.action.removeCommentLine when
// commenting a single or multiple line(s)
"key": "ctrl+shift+/",
"command": "editor.action.removeCommentLine",
"when": "!editorHasSelection && editorTextFocus && !editorReadonly && resourceExtname =~ /\.(js$|php)/"
},
在您的 settings.json 中,宏:
"multiCommand.commands": [
{
"command": "multiCommand.insertCommentColumn0",
"sequence": [
"cursorLineStart",
{
"command": "type",
"args": {
"text": "// "
}
},
]
},
{
"command": "multiCommand.AddCommentColumn0MultipleLines",
"sequence": [
"editor.action.insertCursorAtEndOfEachLineSelected",
"cursorLineStart",
{
"command": "type",
"args": {
"text": "// "
}
},
"removeSecondaryCursors"
]
},
此 resourceExtname =~ /\.(js$|php)/
将键绑定限制为 .js
和 .php
文件(而不是 .json
文件)。如果您希望键绑定应用于更多文件类型,您可以更改它。
Ctrl+/ 在列位置 0 和 Ctrl+ 应用注释字符Shift+Ctrl 删除注释字符。
您可以将这些键更改为任何您想要的。请注意,它不是(目前不能)使用 Ctrl+/ 的简单切换 - 使用键绑定无法检测是否评论已经存在。您需要一个扩展来获得这种功能。
此方法的一个缺点是,如果您 select 多行并对它们进行注释,您将丢失该多行 selection(如演示中所示)。
在VSCode中,当我按下组合键ctrl+/时,VSCode会评论选定的行,确保缩进完好无损。因此,如果一行代码从位置 16 开始,那么注释的双斜杠(即 //
)将位于位置 16,将代码向右移动一点。
我想设置一下,当我按ctrl+/时,评论双斜杠//
将始终从列位置 0 开始。这可能吗?
谢谢。
这是一种稍后更好的方法:
这有点棘手,但请测试一下。你需要一个像 multi-command.
这样的宏扩展在你的keybindings.json中:
{ // disable ctrl+/ for js/php files only
"key": "ctrl+/",
"command": "-editor.action.commentLine",
"when": "editorTextFocus && !editorReadonly && resourceExtname =~ /\.(js$|php)/"
},
{ // call the macro multiCommand.insertCommentColumn0 when
// commenting a single line
"key": "ctrl+/",
"command": "extension.multiCommand.execute",
"args": { "command": "multiCommand.insertCommentColumn0" },
"when": "!editorHasSelection && editorTextFocus && !editorReadonly && resourceExtname =~ /\.(js$|php)/"
},
{ // call the macro multiCommand.AddCommentColumn0MultipleLines when
// commenting more than one line
"key": "ctrl+/",
"command": "extension.multiCommand.execute",
"args": { "command": "multiCommand.AddCommentColumn0MultipleLines" },
"when": "editorHasSelection && editorTextFocus && !editorReadonly && resourceExtname =~ /\.(js$|php)/"
},
{ // call the command editor.action.removeCommentLine when
// commenting a single or multiple line(s)
"key": "ctrl+shift+/",
"command": "editor.action.removeCommentLine",
"when": "!editorHasSelection && editorTextFocus && !editorReadonly && resourceExtname =~ /\.(js$|php)/"
},
在您的 settings.json 中,宏:
"multiCommand.commands": [
{
"command": "multiCommand.insertCommentColumn0",
"sequence": [
"cursorLineStart",
{
"command": "type",
"args": {
"text": "// "
}
},
]
},
{
"command": "multiCommand.AddCommentColumn0MultipleLines",
"sequence": [
"editor.action.insertCursorAtEndOfEachLineSelected",
"cursorLineStart",
{
"command": "type",
"args": {
"text": "// "
}
},
"removeSecondaryCursors"
]
},
此 resourceExtname =~ /\.(js$|php)/
将键绑定限制为 .js
和 .php
文件(而不是 .json
文件)。如果您希望键绑定应用于更多文件类型,您可以更改它。
Ctrl+/ 在列位置 0 和 Ctrl+ 应用注释字符Shift+Ctrl 删除注释字符。
您可以将这些键更改为任何您想要的。请注意,它不是(目前不能)使用 Ctrl+/ 的简单切换 - 使用键绑定无法检测是否评论已经存在。您需要一个扩展来获得这种功能。
此方法的一个缺点是,如果您 select 多行并对它们进行注释,您将丢失该多行 selection(如演示中所示)。