我正在编辑没有扩展名的文件(例如...或具有未知扩展名的文件等),当我尝试使用Cmd + /多行注释时,它什么也没做。我可以将扩展名更改为.py或.yaml,以获取我要查找的#注释功能,但这很麻烦。有没有办法告诉代码“就像文件上的.py扩展名一样”类型的东西?...或者用CarriageReturn + LineFeed加上#加上空格替换CarriageReturn + LineFeed ...或强制Cmd + /起作用?
答案 0 :(得分:1)
最后找到了一些可行的解决方案...没有扩展名,等等...
只需按住(mac)Option + Cmd(同时在第1列中),然后单击向下箭头以多光标选择所有行,然后只需键入#将其放在col.1中,其余将移至1列右...您可以再次执行此操作,例如添加另一个#。
此外,另一种选择是: -转到“选择”>“ ColumnSelectionMode”(进入列模式),然后向下拖动,执行“多选”! ..然后输入#以注释行,例如!!
答案 1 :(得分:0)
我有点惊讶,但这似乎可行-测试一下。您将需要某种宏扩展。在这里,我正在使用multi-command extension。
在您的settings.json中:
"multiCommand.commands": [
{
"command": "multiCommand.addCommentNoExtension",
"sequence": [
"editor.action.insertCursorAtEndOfEachLineSelected",
"cursorHome",
{
"command": "type",
"args": {
"text": "# "
}
},
"removeSecondaryCursors"
]
},
{
"command": "multiCommand.removeCommentNoExtension",
"sequence": [
"editor.action.insertCursorAtEndOfEachLineSelected",
"cursorHome",
"deleteRight",
"deleteRight",
"removeSecondaryCursors"
]
}
]
在您的keybindings.json文件中,放入以下键绑定:
{
"key": "cmd+/",
"command": "multiCommand.addCommentNoExtension",
"when": "editorTextFocus && resourceFilename =~ /^(?!.*\\.)/"
},
{
"key": "shift+/",
"command": "multiCommand.removeCommentNoExtension",
"when": "editorTextFocus && resourceFilename =~ /^(?!.*\\.)/"
}
这是一个演示:
此方法比完整的扩展有一些限制。
最后一个光标位置将不被记住。
空行将被注释-如您在演示中所见。
当注释不同缩进的行时,注释#
不会对齐。
您必须使用一个键绑定 Cmd + / 添加注释,并使用另一个键绑定 Shift + / < / kbd>删除评论。我认为没有一种方法可以使它成为一个命令切换。
此答案真正有趣的部分是不带扩展名的文件的定位方式。在键绑定中,when子句包含resourceFilename =~ /^(?!.*\\.)/
。
When子句可以使用正则表达式来应用于某些键,例如resourceFilename
。参见when clause operators。正则表达式/^(?!.*\\.)/
表示当文件名不包含文字.
时应用此键绑定。它使用否定的前瞻,断言任何字符后都没有.
。
我不确定这是否可行,但似乎可行。 Cmd + / 命令仍然可以与其他文件类型一起使用。
您可以使用"when": "editorTextFocus && editorLangId == plaintext"
,只要没有扩展名的文件保留为plaintext
langId文件,它就可以工作。它不像我上面使用的when子句那么具体。