Я немного удивлен, но это, кажется, работает - проверь это. Вам понадобится какое-то расширение макроса. Здесь я использую мультикомандное расширение .
В вашем 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 + / для удаления комментариев. Я не думаю, что есть способ сделать это переключением одной команды.
Действительно интересная часть этого ответа - как файлы без расширения предназначены. В сочетаниях клавиш есть предложения когда включают resourceFilename =~ /^(?!.*\\.)/
.
Когда предложения могут принимать регулярное выражение для применения к определенным ключам, таким как resourceFilename
. Смотрите когда операторы предложения . Регулярное выражение /^(?!.*\\.)/
говорит о необходимости применять эту привязку клавиш, когда имя файла не содержит литерал .
. Он использует отрицательный взгляд, утверждающий, что после любых символов нет .
.
Я не был уверен, что это было возможно, но, похоже, это работает. Команда Cmd + / по-прежнему работает так же, как и для других типов файлов.
Вы можете использовать "when": "editorTextFocus && editorLangId == plaintext"
, и это будет работать до тех пор, покафайлы без расширения остались как plaintext
langId файлы. Это не так специфично, как в случае когда я использовал выше.