Visual studio code Visual Studio代码无扩展名文件的多行注释

Visual studio code Visual Studio代码无扩展名文件的多行注释,visual-studio-code,comments,vscode-settings,Visual Studio Code,Comments,Vscode Settings,我正在编辑一个没有扩展名的文件,例如。。。或者一个扩展名未知的文件,等等,当我尝试使用Cmd+/多行注释时,它什么也不做。我可以将扩展名改为.py或.yaml,以获得我正在寻找的评论功能,但这太麻烦了。有没有办法告诉代码在thingy的文件类型上像.py扩展名一样工作?。。。或者用CARECARETURN+换行符加上空格替换CARECARETURN+换行符。。。或者强制Cmd+/工作?我有点惊讶,但这似乎可行-测试一下。您将需要某种类型的宏扩展。这里我用的是 在您的settings.json中:

我正在编辑一个没有扩展名的文件,例如。。。或者一个扩展名未知的文件,等等,当我尝试使用Cmd+/多行注释时,它什么也不做。我可以将扩展名改为.py或.yaml,以获得我正在寻找的评论功能,但这太麻烦了。有没有办法告诉代码在thingy的文件类型上像.py扩展名一样工作?。。。或者用CARECARETURN+换行符加上空格替换CARECARETURN+换行符。。。或者强制Cmd+/工作?

我有点惊讶,但这似乎可行-测试一下。您将需要某种类型的宏扩展。这里我用的是

在您的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中,放置以下keybindings:

{
  "key": "cmd+/",
  "command": "extension.multiCommand.execute",
  "args": { "command": "multiCommand.addCommentNoExtension" },
  "when": "editorTextFocus && resourceFilename =~ /^(?!.*\\.)/" 
},

{
  "key": "shift+/",
  "command": "extension.multiCommand.execute",
  "args": { "command": "multiCommand.removeCommentNoExtension" },
  "when": "editorTextFocus && resourceFilename =~ /^(?!.*\\.)/" 
},
下面是一个演示:

这种方法有一些局限性,而不是全面的扩展

最后一个光标位置将不会被记住

空行将被注释-正如您在演示中看到的那样

当阻止不同缩进的注释行时,注释不会对齐

必须使用一个keybinding Cmd+/添加注释,使用另一个binding Shift+/删除注释。我不认为有办法使它成为一个单命令切换

这个答案中真正有趣的部分是如何定位没有扩展名的文件。在keybindings中有包含resourceFilename=~/^的when子句。*\\./

When子句可以将正则表达式应用于某些键,如resourceFilename。看见regex/^?!.\\\./表示在文件名不包含文本时应用此键绑定。。它使用了一个否定的前瞻性断言没有。跟随任何字符

我不确定这是否可行,但它似乎奏效了。Cmd+/命令在处理其他文件类型时仍然可以正常工作


您可以使用when:editorTextFocus&&editorLangId==纯文本,只要没有扩展名的文件保持为纯文本langId文件,就可以使用when:editorTextFocus&&editorLangId==纯文本。它没有我上面使用的when子句那么具体。

终于找到了两个有效的解决方案。。。没有扩展等等

只需在列1中按住macOption+Cmd,然后单击向下箭头以多光标选择所有行,然后简单地键入以将其放入列1,其余的将移到列右侧。。。您可以再次执行此操作,例如添加另一个

此外,另一个选择是:
-进入选择>列选择模式,进入列模式,然后向下拖动,进行多选。。然后键入注释行,例如

可以用命令完成,但不能用同一个命令将其关闭。如何执行命令?我可以创建两个,一个打开,一个关闭吗?然后做同样的操作来关闭注释-似乎每次都要做很多工作来避免使用宏扩展;>}而不是在行中的任何位置按Ctrl+/和Shift+/。