我该如何让Emacs Org-mode在Google Chrome中打开链接?

48

谷歌浏览器被设置为默认浏览器。然而,它在火狐浏览器中打开链接,这是不希望的。

我该如何让Org-mode在谷歌浏览器中打开链接?

8个回答

71

Emacs 23.2不直接支持Google Chrome,但它支持“通用”浏览器,以下类似的方法应该可以工作:

(setq browse-url-browser-function 'browse-url-generic
      browse-url-generic-program "chromium-browser")

您没有提及您的操作系统,但如果您使用的是Windows或Mac,可以尝试以下方法:

(setq browse-url-browser-function 'browse-url-default-windows-browser)
(setq browse-url-browser-function 'browse-url-default-macosx-browser)

如果那不起作用,还有其他人实现了'browse-url-chrome'。 谷歌搜索出以下链接:


另一个建议,如果你是Linux Gnome用户,可以让emacs将决策推迟到gnome:(setq browse-url-browser-function 'browse-url-generic browse-url-generic-program "gnome-open") - Mike Dalessio
chromium-browser 不起作用,google-chrome 也不行,但是 (setq browse-url-browser-function 'browse-url-default-macosx-browser) 可以。 - incandescentman
1
我必须包含完整路径,例如: (setq browse-url-browser-function 'browse-url-generic browse-url-generic-program "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe")(Windows 7) - hajovonta
2
根据@MikeDalessio的评论,如果您正在使用任何Linux桌面环境,则使用“xdg-open”而不是“gnome-open”将运行为您的桌面配置的默认浏览器,因此(setq browse-url-browser-function 'browse-url-generic browse-url-generic-program "xdg-open")。 - NeilenMarais
有没有一种方法可以使用 $BROWSER 环境变量? - CMCDragonkai
链接已经失效: "安全连接失败。在与code.ohloh.net建立连接时发生错误。SSL对等方没有所请求的DNS名称的证书。错误代码:SSL_ERROR_UNRECOGNIZED_NAME_ALERT" - Peter Mortensen

11

正如Trey建议的那样, 您可以将其设置为通用浏览器,但是不要使用"chromium-browser",而应该像这样使用"google-chrome":

(setq browse-url-browser-function 'browse-url-generic
      browse-url-generic-program "google-chrome")

对我来说,这在Emacs 23.2和Chrome 12中都有效。


3
(与上面的回答不同)这个在Linux下的Emacs 24.3中对我有效。谢谢! - user673592

7
我有一个类似的问题(尽管是相反的:我希望Emacs打开Firefox,但它打开了Chromium)。
我正在使用Ubuntu 12.04(Precise Pangolin),但在Ubuntu 11.10(Oneiric Ocelot)中已经遇到了这个问题。下面的解决方案适用于Linux,可能适用于macOS(?),但可能不适用于Windows。
像其他答案建议的设置browse-url-generic-program对我没有起作用。还要注意,我的默认浏览器通常是Firefox:大多数其他应用程序都使用它来打开URL,包括xdg-open。所以我很惊讶Emacs会做出不同的选择。
最后我发现Emacs使用的是sensible-browser (1)脚本。看着那个脚本,我注意到:
  • 首先查看BROWSER环境变量;
  • 否则,尝试其他几个通用脚本,从gnome-www-browser开始。

恰好在我的机器上,未设置BROWSER,但是gnome-www-browser是一个脚本,显然由Chromium安装,并运行Chromium。

因此,长话短说:将以下行放入您的.profile中:

export BROWSER=firefox #或您选择的任何浏览器

如果Emacs未使用正确的浏览器,则可能会有所帮助。


1
如果您希望在更改emacs浏览器的同时消除Chrome作为默认浏览器的副作用,可以执行以下操作(我在bugs.launchpad.net上找到了它): $ sudo update-alternatives --config gnome-www-browser [然后从菜单中选择您喜欢的浏览器] - rytis

5

使用GUI设置浏览器功能非常简单:

  • 在菜单中,点击选项 > 自定义Emacs > 顶层自定义组
  • 点击链接External(与外部实用程序进行交互)
  • 点击链接Browse Url(使用Web浏览器查看URL)
  • 点击左侧的小三角形以显示Value Menu按钮和一些帮助文本
  • 单击Value Menu按钮
  • 从显示的菜单中选择您的首选项
  • 移动到缓冲区顶部,单击应用并保存按钮,以将更改保存到您的~/.emacs文件中

完成 :-)


1
当我将org文件导出为HTML时,也遇到了这个问题。它会使用Firefox而不是Chromium浏览器。我通过自定义org-file-apps来解决这个问题(由于某种原因,它被设置为使用Firefox打开XHTML和HTML文件)。
现在,我有一个扩展名为\.x?html?\'的条目,命令设置为Lisp表单:(browse-url file)

1

我使用的操作系统是macOS,但browse-url-default-macos-browser对我不起作用。

我的解决方案如下:

(setq browse-url-browser-function 'browse-url-chrome)
(setq browse-url-chrome-program "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"))

0
对于ChrUbuntu,由Alan Turing提供的google-chrome咒语可与Emacs 23.3.1一起使用,这是今天的默认设置。我怀疑即使在触发使用chromium时,chrubuntu配置也使用了错误的二进制名称。

0
在 Emacs 28(Fedora Linux)中,我只需要这个。
(setq browse-url-browser-function 'browse-url-chrome)

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