有关 WSL 尚未解决问题的可能解决思路
kexplorning opened this issue · 6 comments
有关 texdoc 打开相应手册的问题,貌似可以借鉴这个项目 Github - wslu 的工作。
其中有一个工具wslview
,它可以将 WSL 的默认浏览器绑定到 Windows 上。
一种选择是,用类似的方法,把 WSL 中的 PDF 浏览器绑定到 Windows 上的。
当然,由于一般现代浏览器都支持浏览 PDF 文档,所以可以直接使用 wslview
。
可以搞一个 bash 脚本(以下代码是我自行YY的。。)
alias texdoc [pkg-name] = "texdoc -l [pkg-name] || <截取其中 PDF 地址> || wslview "
(好吧,我不知道 bash 里面函数怎么写。。)
就这样,希望有些帮助。
这个注意不错。等下个月更新时,我先实验一下。如果可以,就在文档里做链接,引过来。根本上我还是希望微软公司自己解决这个问题。
嗯。。我找到了一个更好的项目 GitHub - wsl-open
不光可以打开,它还可以默认绑定一种文件(绑定到 xdg-open
上)用 Windows 打开。
这个解决方法应该比较完美。。
然后,估计 Microsoft 不会解决这个问题。。。因为在 WSL 中其实可以安装图形界面,并且正常使用(就是比较卡),如果要解决这个问题,解决方式和这个项目的方式应该没有什么差别。。
另,Cygwin 也是外部引入一个命令来解决这个问题。
我已将这个 issue 引入到手册中,下次更新前,保留此 issue
其实不需要安装额外的工具,配置一下 texdoc
的浏览器就可以了:
echo "viewer_pdf = (powershell.exe -Command Start-Process \$(wslpath -w %s)) &" > "$(kpsewhich -var-value=TEXMFHOME)/
texdoc/texdoc.cnf"
WSL 默认没有图形界面,可能会有环境变量 DISPLAY
缺失的警告,自行设置 export DISPLAY=:0
就好了。
其实不需要安装额外的工具,配置一下
texdoc
的浏览器就可以了:echo "viewer_pdf = (powershell.exe -Command Start-Process \$(wslpath -w %s)) &" > "$(kpsewhich -var-value=TEXMFHOME)/ texdoc/texdoc.cnf"WSL 默认没有图形界面,可能会有环境变量
DISPLAY
缺失的警告,自行设置export DISPLAY=:0
就好了。
感谢,我对 powershell
不熟悉,学习了。
echo "viewer_pdf = (powershell.exe -Command Start-Process \$(wslpath -w %s)) &" > "$(kpsewhich -var-value=TEXMFHOME)/texdoc/texdoc.cnf"
我觉得这基本上是最简单的方法。事实上 wslu 的 wslview
也是调用 powershell.exe
,所以照这个逻辑只要创建别名就可以实现打开任意路径的功能:
op() {
powershell.exe -Command Start-Process $(wslpath -w "$1") &
}
另:其实直接调用 explorer.exe
延迟要低很多,wslu 和 wsl-open选择 powershell.exe
是实现上最讨巧的方法。
如果不想创建或修改 texmf
的话,按照 issue 作者的说法:
# `op` 为所使用的路径打开工具
td() {
echo "" | texdoc -l "$1" | head -n 1 | cut -c4- | op &
}
这种方法于少数宏包会抛出错误(多个路径等情况)。