从WSL的Bash中打开Sublime Text

3

我已经完成了以下操作:

别名 subl='"/mnt/c/Program Files/Sublime Text 3/subl.exe"'

然而,使用 subl test.txt 现在会在 C:/System32/test.txt 中打开 Sublime Text,但该路径下并不存在test.txt,因此我无法保存。我也不想将文件保存到 System32 中。如何更改配置以便正确打开我的文件?

另外,如果我输入 subl ~/test.txt,则会尝试打开 C:\home\<myname>\test

4个回答

6
第一个回答很好,但如果你的Linux文件系统链接到Windows文件夹(例如:/home/me/something -> /mnt/c/somethingsubl ~/something/file将失败),或者尝试直接访问Windows文件系统(例如:subl /mnt/d/file),它也不起作用。

这是我刚刚写的更完整的脚本,从上面的答案开始,可以在Windows或Linux路径中打开Sublime的文件。

https://github.com/grigger/subl-wsl

我知道这离回答已经相当久了,但也许其他人在未来会受益于此。


使用 wslpath 真的让我找对了方向。也许在主要答案中提供更多关于它的细节,而不是一个脚本链接? - TheLandolorien

1
你可以编写一个脚本,在正确的位置打开subl,并将其放在Linux的PATH中(例如在/bin中)。
该脚本会在正确的位置打开subl.exe。对于WSL1,该脚本可能如下所示:
#!/bin/bash
/mnt/c/Program\ Files/Sublime\ Text\ 3/subl.exe "C:/Users/<Username>/AppData/Local/Packages/<WSL Distro name>/LocalState/rootfs/$*"

0

我创建了一个小的别名来使其工作:

subl() {
  DISTRO="Ubuntu"
  SUBLIME_TEXT_LOCATION="/mnt/c/Program Files/Sublime Text 3/subl.exe"
  FILE=$1
  FULL_PATH=$(readlink -f $FILE)
  $SUBLIME_TEXT_LOCATION "/\/\wsl.localhost\\${DISTRO}${FULL_PATH}"
}     

所以打字

subl cghs-2023-02-28.log

会在 Sublime Text 3 中打开文件。


-1

WSL 就像是 Windows 上的 Linux 虚拟机。 因此你需要在 WSL 上安装适用于 Linux 的 Sublime Text。

点击 这里 查看。


WSL是一个兼容性层,而不是虚拟机。 - NullDev
抱歉我的知識不足。 - Sugar Tarou
我认为,您需要在主机上设置一个X服务器,并在WSL上设置GUI才能使其正常工作... - dan1st

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接