在 WSL 中启动 Fish_config Web ui 时出错

在 WSL 中启动 Fish_config Web ui 时出错

我想fish使用Web UI模式自定义我的shell,但是在运行时fish_config colors,显示以下错误。

surface@Surface ~> fish_config starting-colors
Web config started at file:///tmp/web_configoafehdco.html
Hit ENTER to stop.
Start : This command cannot be run due to the error: The system cannot find the file specified.
At line:1 char:1
+ Start "file:///tmp/web_configoafehdco.html"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Start-Process], InvalidOperationException
    + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommandd                                                                                                                                                                                                                                                                            

我在 Linux 的 Windows 子系统中运行 Ubuntu

答案1

在浏览了一些文章但没有找到正确答案后,我发现运行时'help' 它会打开浏览器并指向

file://wsl%24/Ubuntu-20.04/usr/share/doc/fish/index.html#variables-for-changing-highlighting-colors

当我们试图奔跑时鱼配置,它指向

"file://wsl%24/Ubuntu/tmp/web_configpo_b9wan.html"

这意味着,我们需要将 wsl%24/Ubuntu 更改为 wsl%24/Ubuntu-20.04。

为此,首先打开 webconfig 目录。

cd /usr/share/fish/tools/web_config

现在,授予 webconfig.py 文件写入权限。

sudo chmod 777 webconfig.py

在 webconfig.py 文件中"file:///" + f.name"修改以下行:"file://wsl%24/Ubuntu-20.04" + f.name


通过运行将文件的权限更改回其原始状态chmod 644 webconfig.py

你可以走了。

答案2

发生此问题似乎是因为您的 WSL2 发行版可能没有最新版本的fish.解决方案是修复inwsl的检测。fish/usr/share/fish/tools/web_config/webconfig.py

编辑您的/usr/share/fish/tools/web_config/webconfig.py并将函数更改is_wsl()为与此相同:

 def is_wsl(): 
     """ Return whether we are running under the Windows Subsystem for Linux """ 
     if "linux" in platform.system().lower() and os.access("/proc/version", os.R_OK): 
         with open("/proc/version", "r") as f: 
             # Find 'Microsoft' for wsl1 and 'microsoft' for wsl2 
             if "microsoft" in f.read().lower(): 
                 return True 
     return False

尤其,将“微软”更改为“微软” (大写到小写“m”)

欲了解更多信息,请阅读这个问题在 Fish shell 的 github 存储库中打开。

相关内容