2009-10-16 3 views
0

다음 emacs lisp 스 니펫을 사용하여 emacs 내에서 브라우저를 시작하고 지정된 페이지를 엽니 다. 그러나 쉘에서 스크립트로 실행할 때 아무 일도 일어나지 않습니다. 내가 뭘 더해야합니까? 나는 (대화 형) 떨어 뜨리려고했다.emacs 스크립트에서 브라우저를여시겠습니까?

 

#!/usr/bin/emacs --script 

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

(surf-news) 
 
+0

그 스크립트는 윈도우도 (Cygwin에서)에 ... 나를 위해 작동합니다. –

+0

Mac과 OpenSolaris를 사용해 보았습니다. 어쩌면 설정 값이 누락 되었습니까? –

답변

1

내가 어제 발견 한 멋진 기능은 최근에 emacs에 추가 된 M-x webjump입니다.

0

아래쪽에있는 site에 대한 답변이 있는데, 아래쪽에 Mac OS pty 버그가 설명되어 있습니다. 이 줄을 추가하고 URL 사이에 약간의 지연을 추가해야했습니다.

 
(setq process-connection-type nil) 

다음은 완벽한 해결책입니다. 당신은 GNOME, KDE, 또는 아마 거의 모든 그래픽 환경에있는 경우 리눅스에

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

은 아마이 명령은 xdg-open을했다. 이 명령은 기본적으로 인수를 취하여 데스크탑 기본 응용 프로그램으로 엽니 다. 그것은 파일과 URL을 모두 처리합니다. 따라서 일반적으로 "기본 응용 프로그램에서 열기"라고 말하면서 xdg-open을 사용합니다.

Mac OS에는 그냥 open이라고하는 비슷한 명령이 있다고 생각합니다.

0

Ryan Thompson이 위에 언급 한 것처럼 Emacs에서 xdg-open을 사용할 수 있습니다.
변경 :

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

하려면 :

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