ПРОТИВ сочетания клавиш Code при выборе нескольких строк

#visual-studio-code #key-bindings

#visual-studio-code #привязки клавиш

Вопрос:

Я пытаюсь настроить другую команду для сочетания клавиш, когда выбрана одна строка, и другую, когда выбрано несколько строк. Я пытался найти пример в привязках клавиш по умолчанию, но безуспешно. Есть ли какой-либо способ добиться этого? Какой when параметр я должен использовать в файле привязок клавиш, может быть, есть другой способ?

Ответ №1:

В редакторе есть 2 when контекста выбора

  • editorHasSelection
  • editorHasMultipleSelections

Если вы ищете случай, когда выделено одно выделение, но несколько строк, вам не повезло, контекст не знает, что выбрано.


Редактировать

Я написал расширение, которое устраняет этот пробел в контексте привязок клавиш.

Используйте дополнительный контекст, и он определяет extraContext:editorSelectionHasMultipleLines , что будет использоваться с when предложением.

Пример:

В settings.json :

   "multiCommand.commands": [
    {
      "command": "multiCommand.terminalSingleLine",
      "sequence": [
        { "command": "workbench.action.terminal.sendSequence",
          "args": { "text": "echo Single Lineu000D" }
        }
      ]
    },
    {
      "command": "multiCommand.terminalMultipleLine",
      "sequence": [
        { "command": "workbench.action.terminal.sendSequence",
          "args": { "text": "echo Multiple Linesu000D" }
        }
      ]
    }
  ]
  

В keybindings.json :

   {
    "key": "ctrl k f5", // or any other key combo
    "command": "multiCommand.terminalSingleLine",
    "when": "editorTextFocus amp;amp; !extraContext:editorSelectionHasMultipleLines"
  },
  {
    "key": "ctrl k f5",
    "command": "multiCommand.terminalMultipleLine",
    "when": "editorTextFocus amp;amp; extraContext:editorSelectionHasMultipleLines"
  }