我刚刚从 PhpStorm 迁移到 VS Code,但仍然有一些不习惯的地方。
当我使用 Ctrl + / 注释一行时,光标停留在该行中。我希望我的光标移动到下一行(就像在 PhpStorm 中实际所做的那样)。
关于如何在评论一行后添加此“转到下一行”操作有什么想法吗?
有关 runCommands
的更多信息,请参阅
https://stackoverflow.com/a/75808372/836330。不再需要扩展,因为 vscode v1.77+ 中已内置类似宏的功能,因此这些键绑定现在可以使用(在您的
keybindings.json
中):
在 Windows 上,文件位于此处
%APPDATA%\Code\User\keybindings.json
Mac
~/Library/Application Support/Code/User/keybindings.json
Linux
~/.config/Code/User/keybindings.json
{
"key": "ctrl+/", // whatever keybindings you want
"command": "runCommands",
"args": {
"commands": [
"editor.action.commentLine",
"cursorDown"
]
},
"when": "editorTextFocus"
},
{
"key": "shift+alt+A",
"command": "runCommands",
"args": {
"commands": [
"editor.action.blockComment",
"cursorDown"
]
},
"when": "editorTextFocus"
}
之前的回答:
使用此键绑定(在您的
keybindings.json
中)和宏扩展多命令:
{
"key": "ctrl+/", // whatever you want
"command": "extension.multiCommand.execute",
"args": {
"sequence": [
"editor.action.commentLine", // for line comments
"editor.action.insertLineAfter"
// "cursorDown"
]
},
"when": "editorTextFocus"
},
{
"key": "shift+alt+A", // whatever keybinding you want
"command": "extension.multiCommand.execute",
"args": {
"sequence": [
"editor.action.blockComment", // for block comments too
"editor.action.insertLineAfter"
// "cursorDown"
]
},
"when": "editorTextFocus"
}
唯一的缺点是,当您取消注释时,它还会插入一行。 如果您只想向下移动一行(其中可能存在预先存在的文本),请使用命令
"cursorDown"
,而不是插入一行。
虽然@Mark 的解决方案很有帮助,但我发现它对于新手来说并不完整 - 我必须做额外的研究才能实现该功能。所以这里有详细的步骤。
View - Extensions
Multi-command
扩展。转到
File > Preferences > Keyboard Shortcuts
。 (macOS 上Code > Preferences > Keyboard Shortcuts
)
Open Keyboard Shortcuts (JSON)
如下面的屏幕截图所示。
keybindings.json
将会打开。Windows/Linux:
[
{
"key": "ctrl+/",
"command": "extension.multiCommand.execute",
"args": {
"sequence": [
"editor.action.commentLine",
"cursorDown"
]
},
"when": "editorTextFocus"
}
]
Mac操作系统:
[
{
"key": "cmd+/",
"command": "extension.multiCommand.execute",
"args": {
"sequence": [
"editor.action.commentLine",
"cursorDown"
]
},
"when": "editorTextFocus"
}
]
从今天开始,在 Visual Studio Code 1.77.3 中,您不再需要多命令扩展。
此外,现有答案在换行上效果不佳,它们的行为是将光标滚动到下一个屏幕行,该行实际上位于同一“实际”行中。 (如果您还打算使用相同的键绑定注释下一行,那么这会特别成问题;结果是您正在un注释刚刚注释的行。)
我的建议无需多命令即可工作,并且还解决了这个烦恼。它覆盖 ctrl + 数字键盘斜线键绑定(根据需要更改它)。
在您的
keybindings.json
中,添加此块(适用于 Windows/Linux):
{
"key": "ctrl+[NumpadDivide]",
"command": "runCommands",
"args": {
"commands": [
{
"command": "editor.action.commentLine"
},
{
"command": "cursorMove",
"args": { "by": "line", "to": "down" }
}
]
},
"when": "editorTextFocus"
}
对于 macOS,将“ctrl”替换为“cmd”。
两种解决方案都对我有用..几乎哈哈 我使用的是 Mac,
"key": "cmd+/",
更适合我。
解决方案有"key": "ctrl+/",
。 我猜那是 Windows 的事情。