Открытие браузера из сценария emacs?

У меня есть следующий фрагмент emacs lisp, который запускает мой браузер из emacs и открывает указанные страницы. Однако, когда я запускаю его как скрипт из оболочки, ничего не происходит. Что еще мне нужно сделать? Я попытался сбросить (интерактивный).


#!/usr/bin/emacs --script

(defun surf-news ()
  (interactive)
  (progn
    (browse-url "http://news.ycombinator.com")
    (browse-url "http://stackoverflow.com")
      ))

(surf-news)


person Community    schedule 16.10.2009    source источник
comment
У меня этот скрипт работает... даже в Windows (cygwin).   -  person Trey Jackson    schedule 16.10.2009
comment
Я пробовал на Mac и на OpenSolaris. Может быть, я пропустил значение конфигурации?   -  person    schedule 16.10.2009


Ответы (4)


Вчера я обнаружил удобную функцию M-x webjump, которая недавно была добавлена ​​в emacs.

person stsquad    schedule 16.10.2009

Как упоминал выше Райан Томпсон, вы можете использовать xdg-open в Emacs.
Изменение:

(browse-url "http://news.ycombinator.com")
(browse-url "http://stackoverflow.com")

To:

(browse-url-xdg-open "http://news.ycombinator.com")
(browse-url-xdg-open "http://stackoverflow.com"))
person AAAfarmclub    schedule 01.02.2017

Я нашел ответ на этом сайте внизу, где описывается ошибка Mac OS pty . Мне пришлось добавить эту строку и небольшую задержку между URL-адресами.

 (setq process-connection-type nil)

Вот полное решение.

#!/usr/bin/emacs --script

(setq process-connection-type nil);; pty's broken on the Mac

(defun surf ()
  (progn
    (browse-url "http://news.ycombinator.com")
    (sleep-for 0.5);  We need a delay
    (browse-url "http://stackoverflow.com")
    ))
;;
;; This is what's going on behind the scenes
;;(setq url "http://www.google.com")
;;(start-process (concat "open " url) nil "open" url)

(surf)
person Community    schedule 20.10.2009

В Linux, если вы находитесь в GNOME, KDE или, возможно, почти в любой графической среде, вероятно, есть команда с именем xdg-open. Эта команда в основном берет свой аргумент и открывает его с помощью настольного приложения по умолчанию. Он обрабатывает как файлы, так и URL-адреса. Поэтому обычно, когда мне нужно сказать «Откройте это в приложении по умолчанию», я использую xdg-open.

Я думаю, что в Mac OS есть похожая команда, только что названная open.

person Ryan C. Thompson    schedule 25.08.2010