genie与 vs code集成
上一级页面:index-wsl
前言
在瓶子中找不到VScode遥控器的命令“code”?这是一个解决方案
在genie bottle内运行用于 WSL 的 VS code服务器
从 WSL 运行code
时,VS Code 服务器始终在瓶子外部启动,即使在瓶子内调用命令code
也是如此。在某些情况下,这可能会很不方便,例如无法在 VS Code 控制台中执行命令systemctl
。
这是我目前用来在瓶子内运行VS Code服务器的hack
。
转到%USERPROFILE%\.vscode\extensions\
(在 Windows 上)并找到名称ms-vscode-remote.remote-wsl-*
的文件夹。(*
通常为版本号)
这里可以存储多个版本的remote-wsl扩展。选择对应最新版本的文件夹。
然后导航到scripts
文件夹。该文件夹下应该有三个文件,分别名为 wslServer.sh
、wslCode.sh
和 wslDownload.sh
。
在 wslServer.sh
中,文件前部(第8行)加上以下行:
1 | # Check if inside bottle |
然后执行wsl --shutdown
并重新启动 VS Code,
下次启动VS Code服务器时,VS Code服务器将运行在瓶子内,并且systemd
的PID 变更为PID 1
。
1 | pgrep -l systemd |
现在有一个自动化的脚本,自动修补 wslServer.sh
进入wsl
1 | cd ~/src |
这个脚本应当在shell层启动,因为它依赖于bash
1 | sudo chmod -R +rwx c28e6405fbd9cc1f853bc99465773f59 |
1 | sudo mkdir /opt/scripts |
然后将这个脚本添加到启动脚本(/etc/zsh/zprofile
或者/etc/profile
)
1 | # 自动patch |
在瓶子中找不到VS code的命令“code”?这是一个解决方案
如果类似或zsh: command not found: code
1 | Command 'code' not found, but can be installed with: |
在系统化的瓶子中出现,而在瓶子外面,该命令code
完美地打开VScode,
那么您可以将此代码附加到您的.zprofile
或.profile
中。
1 | code() { |
YOUR USERNAME
替换为您拥有的用户名。
VScode在设备之间可能有不同的路径,所以自己检查一下你的vs code路径
在此之后,VScode应该没有问题了!
参考、引用、致谢
在精灵瓶内运行用于 WSL 的 VS 代码服务器 ·arkane-systems/genie Wiki (github.com)
在瓶子中找不到VScode遥控器的命令“代码”?这是一个解决方案 ·arkane-systems/genie Wiki (github.com)