Ярлык для запуска команды терминала в коде VS - PullRequest
0 голосов
/ 12 октября 2018

Есть ли способ создать горячую клавишу для запуска определенной команды в терминале?Скажем, я хочу скомпилировать мои файлы TypeScript с помощью горячей клавиши, а не набирать в терминале "tsc" или любой другой вариант этой команды.(Правка: я знаю, что при сохранении можно перекомпилировать TS, но вопрос все тот же)

Ответы [ 3 ]

0 голосов
/ 12 октября 2018

Как правило, вы устанавливаете сборку или другую задачу или скрипт npm, а затем запускаете это с помощью горячей клавиши.

Существует еще один новый способ сделать это с помощью отправить текст в терминал .

Например, попробуйте это в ваших сочетаниях клавиш:

{
    "key": "ctrl+alt+u",
    "command": "workbench.action.terminal.sendSequence",
    "args": {
      "text": "node -v\u000D"
    }
}

или для сценария npm:

 {
    "key": "ctrl+alt+u",
    "command": "workbench.action.terminal.sendSequence",
    "args": {
      "text": "npm run-script test\u000D"
    }
 }

Первый запустит команду node -v (\u000D - это возврат, поэтому он выполняется).Тем не менее, я все же рекомендую на самом деле настроить задачу сборки, а затем есть ключевые цепочки для запуска задачи сборки: Ctrl - shift - B .Или сценарий npm.

Например, если у вас был запущен более сложный сценарий, см. Как связать задачу с привязкой клавиш или Как связать клавиши внешней командой .


РЕДАКТИРОВАТЬ : Начиная с v1.32 вы можете сделать что-то вроде этого:

{
  "key": "ctrl+shift+t",
  "command": "workbench.action.terminal.sendSequence",
  "args": { "text": "tsc '${file}'\u000D" }
}

Теперь вы можете использовать встроенныйпеременные, такие как ${file}, с помощью команды sendSequence в привязке клавиш.Я завернул ${file} в одинарные кавычки на случай, если в вашей структуре каталогов есть папка с пробелом в имени.И \u000D - это возврат.

0 голосов
/ 24 июля 2019

Вы можете сделать это с помощью VSCode tasks, а затем подключить свою задачу к связыванию клавиш.Недостатком этого подхода является наличие файла tasks.json в папке рабочей области .vscode (он не может быть глобальным).

Вот пример, где я хотел открыть файл вПользовательский пульт GitHub:

// tasks.json
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Open in remote",
            "type": "shell",
            "command": "open https://github.custom.com/org/repo/blob/master/${relativeFile}#L${lineNumber}"
        }
    ]
}

// keybindings.json
{
    "key": "ctrl+o",
    "command": "workbench.action.tasks.runTask",
    "args": "Open in remote"
},

Вот еще несколько переменных кода VS, которые вы можете использовать, если вам интересно: https://code.visualstudio.com/docs/editor/variables-reference

Здесь существует давняя проблема, которая должна облегчить эту задачуобойтись без задач: https://github.com/microsoft/vscode/issues/871

0 голосов
/ 12 октября 2018

Я не думаю, что vscode по умолчанию может это сделать, но вы можете попробовать это расширение.Это работа для меня.

https://marketplace.visualstudio.com/items?itemName=mkloubert.vs-script-commands

...