我读了this post但是我对以下代码有点问题(我使用的是Emacs 24.3和Cygwin,我不知道Lisp):
(defun open-in-browser()
"Open buffer in browser, unless it is not a file. Then fail silently (ouch)."
(interactive)
(if (buffer-file-name)
(let ((filename (buffer-file-name)))
(shell-command (concat "start firefox.exe \"file://" filename "\"")))))
我的shell-command
是bash。我把最后一行改为
(shell-command (concat "cygstart d:/program/fox/firefox.exe ...
打开d:/documents/test.html
效果很好。
打开d:/documents/my notes/test.html
不工作。
我在Firefox中遇到以下错误:
找不到档案
d:/documents/my
我认为bash错过了my notes
中的空格。我该如何解决?
答案 0 :(得分:0)
emacs缓冲文件打开ex)d:/documents/test.html ;;工作正常 emacs缓冲文件打开ex)d:/ documents / my notes / test.html ;; not work
因为空白而失败了。您可以在此处阅读Bash如何解释空格的详细说明:https://unix.stackexchange.com/a/108663/84118
答案 1 :(得分:0)
在shell命令中,将filename
更改为(shell-quote-argument filename)