Короткий ответ: Да, это возможно, но это обходной путь.
Проблемы
wt.exe
в настоящее время не имеет параметра командной строки для выполнения команды из split-pane
wsl.exe
(который запускает вашу оболочку по умолчанию, например bash) в настоящее время не поддерживает открытие оболочки с помощью команды без выхода оболочка сразу после запуска команды.
Обходной путь
Чтобы обойти первую проблему, мы можем запустить настраиваемый профиль, который выполняет команду через wsl.exe
в паре ключ-значение (в настройках json) "commandline": "wsl.exe 'commands go here"
Чтобы обойти вторую проблему, нам нужно выполнить wsl.exe 'commands go here'
через powershell.exe
, потому что Powershell имеет параметр -NoExit
, который будет держать оболочку открытой после выполнения команды. Так, например, если вы хотите открыть оболочку, которая запускает wsl.exe
(ваша linux оболочка) с помощью команды watch ps
, тогда строка в настраиваемом профиле будет выглядеть так:
"commandline": "powershell.exe -NoExit -Command wsl.exe watch ps"
Решение:
Создайте профиль в Windows Терминале settings.json
для каждой команды, которую вы хотите запустить. Каждый профиль должен иметь уникальный guid
, который можно создать в Powershell, выполнив команду [guid]::NewGuid()
. Таким образом, профиль для запуска команды watch ps
будет выглядеть примерно так:
{
"guid": "{b7041a85-5613-43c0-be35-92d19002404f}",
"name": "watch_ps",
"commandline": "powershell.exe -NoExit -Command wsl.exe watch ps",
"hidden": false,
"colorScheme": "One Half Dark"
},
Теперь вы можете открыть вкладку в терминале windows с двумя панелями, панель справа запустит команду watch ps
, и оболочка останется открытой. Поместите что-то вроде приведенной ниже строки кода в ярлык (или из командной строки), где значение параметра -p
равно значению созданного вами профиля. Для каждой дополнительной панели, которую вы открываете, потребуется профиль, в котором есть команда, которую вы хотите запустить.
wt split-pane -p "watch_ps"