在 Windows Ubuntu 从 Bash 打开 Sublime Text

Opening Sublime Text from Bash on Ubuntu on Windows

我似乎无法弄清楚如何从 Bash 在 Ubuntu 在 Windows 打开 Sublime Text 2。最终我希望能够使用 subl . 打开我所在目录的内容。

在我的机器上,Sublime Text 2 安装在 C:\Program Files\Sublime Text 2sublime_text.exe 位于此目录中。在 Windows 的 Ubuntu 上的 Bash 中,我可以通过 /mnt/c/ 访问位于 C 上的任何文件。

我尝试设置一个别名:alias subl="/mnt/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe"。但是,在尝试 subl . 时出现以下错误:

cannot execute binary file: Exec format error

如何正确设置?

now possible 从 Ubuntu 命令行上的 Bash 启动 Windows 可执行文件(如 Sublime Text)。

您还应该能够设置别名以从命令行使用它(就像您尝试做的那样)。我的如下(并且工作正常):

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

注意第二组引号:这是必需的,因为文件路径中有空格。或者,您可以转义空格(就像您在示例中所做的那样)。

Nick F 的回答是正确的,但有一个重要的警告。

如果您打算使用 Sublime Text 编辑 Linux 文件,那么您应该重新考虑。 这样做会导致数据损坏,正如我亲身发现的那样。

有关原因的更多详细信息,请参阅此处:https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/

我知道这是一个旧的 post,但我希望这将作为对其他试图设置 Sublime Text 来编辑 Linux 文件的用户的警告。

可以做到。

您可以使用本地 Sublime 使用 RemoteSubl(一个 SublimeText 插件)编辑远程文件:

https://github.com/randy3k/RemoteSubl

在这种情况下开箱即用,并且还注意不同的文件子系统不会相互混淆。

如果有人想改进.. 检测文件是否在 windows 或 linux 领域的条件,并启动适当的编辑器...使用不同的主题...哎呀!那太好了。

创建别名将不允许您使用

subl path_to_file

相反,您可以 link 将 subl 应用程序添加到您的 /bin 文件夹

 sudo ln -s /mnt/c/Program\ Files/Sublime\ Text\ 3/subl.exe /bin/subl

完成!!

如果没有 /bin 文件夹,请执行 whereis ls 并将 /bin 替换为输出目录

ps- /bin 是类 Unix OS 中的标准目录,其中包含可执行文件(二进制文件的缩写形式)

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

这是我刚从一些 Whosebug 答案开始编写的更完整的脚本,它将在 sublime 中打开两个具有 Windows 或 Linux 路径的文件。

subl ~/something 将在 C:\Users\<usr>\AppData\Local\Packages\...\LocalState\rootfs 中打开 sublime subl /mnt/d/something 将打开 D:\something

我知道答案已经过了很长一段时间,但也许将来其他人会因此得到帮助。

只是想向其他用户强调,WSL 在 2019 年 5 月确实有更新,根据我的阅读,现在可以编辑来自 windows 的 Linux 个文件,只要您使用 9P 文件服务器(例如 \wsl$\)。这是一个巨大的进步!

这个通过添加到 .zshrc 中为我工作 使用 Windows 10 Pro

的 WSL 中的 Debian
alias subl="/mnt/c/Program\ Files/Sublime\ Text\ 3/sublime_text.exe"