Sublime Text 插件找不到我的默认浏览器

Sublime Text plugin can’t find my default browser

TL;DR:Sublime Text 从 webbrowser._browsers 得到的响应与我的终端不同。

这让我抓狂。我使用了一个插件 GitLink,它将从您当前的文件中打开一个 GitHub link。它依赖于 Python 的 webbrowser 工具来打开 url。问题是我的默认浏览器是 Chrome,但它一直打开 Firefox。

在我的终端中,如果我在 pythonpython3 中启动,webbrowser.open_new_tab('https://whosebug.com') 将在 Chrome 中正确启动。 webbrowser._browsers 将正确地将 'chrome' 列为我的浏览器之一。

但是,在 Sublime Text 控制台中,缺少 webbrowser._browsers Chrome。它列出了除我真正想要的浏览器之外的所有其他浏览器。是什么赋予了? Sublime Text 如何获得与我在终端中 运行 python 时不同的列表?我如何让它匹配?

您可以尝试多种方法。

1.设置 BROWSER 环境变量:

正如 Keith Hall 暗示的那样,这个问题可以通过设置 BROWSER 环境变量来解决。如果您不知道如何查找您的版本 - OSX 更改了环境变量在某些时候的设置方式,因此对于不同版本的 OSX 有不同的方法来执行此操作。但是,我在 Linux 上,我的 BROWSER 环境变量未设置 且 ST 始终在我的默认浏览器中打开 url,这包括对 [=17 的调用=] GitLink 用来打开 url 的(我假设你已经看到了),所以这可能无法解决问题。

2。修改GitLink(你安装的版本):

首先测试这是否可行 - 在 Linux.

上工作正常

将以下两行复制并粘贴到 ST 控制台中:

import webbrowser
webbrowser.get("chrome").open_new_tab("http://www.google.com")

如果用 Google.com 打不开 Chrome 试试:

# google-chrome: Chrome variant.
webbrowser.get("google-chrome").open_new_tab("http://www.google.com")
# macosx: uses the OSX default browser.
webbrowser.get("macosx").open_new_tab("http://www.google.com")
# links: generic; doubtful but worth trying at this stage.
webbrowser.get("links").open_new_tab("http://www.google.com")

完整的 list of possible values 可能会有帮助。

另一种可能是使用完整路径,请参阅此 Whosebug answer 或尝试:

# Replace path with your path to Chrome if necessary.
webbrowser.register('chrome_path', None, webbrowser.BackgroundBrowser("/Applications/Google Chrome.app"))
webbrowser.get('chrome_path').open_new_tab(url)

一旦生效:

  • 安装PackageResourceViewer插件;安装后...
  • 打开命令面板并select:PackageResourceViewer: Open Resource
  • 在软件包列表 select 中:GitLink
  • 在文件列表中select:GitLink.py
  • 文件 GitLink.py 将打开...

如果您保存此文件(如果您不保存就关闭它,则什么也不会发生)然后 GitLink.py 的副本将保存在您系统中的以下位置:ST_CONFIG/Packages/GitLink/GitLink.py - 此版本该文件的版本将覆盖 GitLink.py 的版本,该版本存储在 Gitlink.sublime-package 文件中,Package Control 将安装在 Installed Packages 文件夹中。即使 GitLink 包得到更新,.sublime-package 文件中的版本仍然会被覆盖。没问题,您需要做的就是删除包含 GitLink.py 文件的文件夹 ST_CONFIG/Packages/GitLink/,ST 将开始使用 .sublime-package 文件中的版本再次.

修改容易:

向下滚动到 GitLink.py 的底部,您将在其中看到以下几行:

if(args['web']):
    webbrowser.open_new_tab(url)

只需将 webbrowser.open_new_tab(url) 行更改为以下内容(如有必要,将 "chrome" 替换为在控制台中有效的值):

if(args['web']):
    webbrowser.get("chrome").open_new_tab(url)

保存文件,插件应立即由 ST 更新(检查控制台是否有 "reloading plugin" 消息以确保是否需要)。该插件现在应该在 Chrome.

中打开您的网址

3。在 GitLink 的 GitHub 页面上打开一个问题:

问题页面是here。陈述您的问题并请求添加设置,以便用户可以指定应使用哪个浏览器 Python 的 webbrowser 模块。

我建议您无论如何都这样做,并将 link 添加到此 Whosebug 页面以供参考。