【问题标题】:Opening Sublime Text from Bash on Ubuntu on Windows在 Windows 上的 Ubuntu 上从 Bash 打开 Sublime Text
【发布时间】:2017-03-01 08:04:28
【问题描述】:

我似乎无法弄清楚如何在 Windows 上的 Ubuntu 上从 Bash 打开 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 . 时,我收到以下错误:

无法执行二进制文件:执行格式错误

如何正确设置?

【问题讨论】:

  • Windows 上的 Ubuntu 上的 Bash。这是什么意思?
  • 您可以使用完整路径启动它吗:$ /mnt/c/Program Files/Sublime Text 2/sublime_text.exe?如果你 cd 到目录:$ cd /mnt/c/Program Files/Sublime Text 2 然后启动它:$ ./sublime_text.exe

标签: linux windows bash ubuntu sublimetext


【解决方案1】:

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

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

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

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

【讨论】:

  • 令人印象深刻 - 如果有人对它的工作原理感兴趣,请阅读/观看 this
  • 我也是。就我而言,它是 Atom,但我想它源于同一个问题。
  • 仍然,这使终端窗口保持忙碌,当您使用 ctrl+c 退出时,崇高的窗口将关闭。可以预防吗?
  • 这有点接近,但我的主要用途是调用subl 命令从命令行编辑文件(即subl -n some_file.json),因此将别名指向Windows 不会有帮助.我从 WSL 中创建了一个单独的 sublime 安装,但是该命令没有成功打开一个新窗口。有没有人找到解决方法?
  • @Jonathan 嗯,这很奇怪:我完全按照您的描述使用上述别名,例如。 subl -n some_file.json 来自 WSL,对我来说效果很好。
【解决方案2】:

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

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

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

我知道这是一篇旧帖子,但我希望这可以作为对尝试设置 Sublime Text 来编辑 Linux 文件的其他用户的警告。

【讨论】:

  • 这是真的——你绝对不想在 Sublime(或任何其他 Windows 应用程序)中编辑 Ubuntu 系统文件(例如,在你的 /home 目录中的那些)。但据我所知,编辑位于 Linux 主目录之外的项目目录(例如/mnt/c/www)中的文件应该没有任何问题。自一月份以来,我大部分时间都在这样做,一点问题都没有。不过,您的观点绝对值得了解,因为我从经验中知道,通过从 Windows 编辑主目录中的 Linux 文件可能会弄乱 WSL。
  • 我想补充一点,除了不推荐之外,尝试使用 Windows 安装的 Sublime Text 打开 Ubuntu 系统文件将导致打开的文件为空白/空。至少这是我在安装 WSL(Ubuntu 16.04)时所经历的。
  • @Bremsstrahlung 有什么解决办法吗?
【解决方案3】:

可以做到的。

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

https://github.com/randy3k/RemoteSubl

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

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

【讨论】:

    【解决方案4】:

    创建别名不会让你使用

    subl path_to_file
    

    相反,您可以将 subl 应用程序链接到您的 /bin 文件夹

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

    完成!!

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

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

    【讨论】:

      【解决方案5】:

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

      这是我刚刚从一些 stackoverflow 答案开始编写的更完整的脚本,它将以崇高的方式打开具有 Windows 或 Linux 路径的两个文件。

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

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

      【讨论】:

      • 我在我的主目录中使用测试~/my.cnf 文件尝试了您的方法。它以正确的文件打开Sublime Text 3...但是,当我进行更改并点击CTRL+S 保存文件时,Sublime Text 3 完全冻结了!你有什么建议?
      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

        通过将它添加到 .zshrc 中来为我工作 WSL 中的 Debian 与 Windows 10 专业版

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-07-24
          • 1970-01-01
          • 2016-02-24
          • 2013-07-10
          • 2016-11-17
          • 2015-01-23
          • 2020-04-18
          • 1970-01-01
          相关资源
          最近更新 更多