Запустить VS-код из WSL Bash
У меня установлено обновление для авторов. WSL работает. Я могу выполнить большинство .exe файлов, просто называя notepad.exe
Но когда дело доходит до VS-кода.... Я не могу использовать команду code
по умолчанию или вызов code.exe
... Я также попробовал code
и code.cmd
. Почему VS Code не работает как другие программы? И есть ли способ включить команду code
?
EDIT: теперь я получаю следующие ошибки:
me @mypc:/mnt/c/Users/me/Documents/project_folder $code. /mnt/c/Program Files (x86)/Microsoft VS Код /bin/code: строка 7: realpath: запятая nd не найден /mnt/c/Program Files (x86)/Microsoft VS Код /bin/code: строка 14:./Code.exe: Нет такой файл или каталог
Ответы
Ответ 1
В обновлении Creators была установлена функциональность взаимодействия. Однако, кажется, вам нужно установить realpath
в WSL, чтобы распознать путь. Я не уверен, почему это так, но запуск sudo apt-get install realpath
исправил его для меня!
РЕДАКТИРОВАТЬ: После обновления к обновлению Fall Creators запуск VSCode из WSL работает из коробки 🎉
Ответ 2
Вы всегда можете создать псевдоним в оболочке WSL Bash
alias code="/mnt/c/Program\ Files/Microsoft\ VS\ Code/Code.exe"
Если вы добавите это в свой файл .bashrc или .zshrc, он всегда будет доступен при запуске нового экземпляра вашей среды.
Ответ 3
ПРЕДУПРЕЖДЕНИЕ: Не изменяйте файлы Linux с помощью приложений и инструментов Windows
Обновление. Вышеуказанное не относится к версии 1903 или новее.
После всего этого я недавно испытал точно такое же поведение. Оказывается, во время первого удара по WSL с VS Code я также установил собственную копию из apt, которая переписала путь Windows.
Так что в WSL я удалил что-то вроде этого...
$ sudo apt remove code -y; sudo apt autoremove -y
Затем подтвердил, что путь был правильным...
$ which code
/mnt/c/Program Files/Microsoft VS Code/bin/code
Затем снова запустили WSL-терминал, и все снова было замечательно в мире кодирования. :)
Примечание: я полагаю, что другим вариантом было бы исправить путь в WSL, но без установленного пакета GUI он просто запустится в фоновом режиме и никогда не появится.