Отваряне на браузър от emacs скрипт?

Имам следния фрагмент на emacs lisp, който ще стартира моя браузър от emacs и ще отвори посочените страници. Когато обаче го стартирам като скрипт от shell, нищо не се случва. Какво повече трябва да направя? Опитах да пусна (интерактивно).


#!/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