1

我在 Emacs 中使用 Rinari 进行 Rails 开发。Mx shell 将为我的环境 (zsh) 打开一个正确 PATH 的新缓冲区。Mx eshell 使用了所有不正确的 PATH,我无法让它与任何东西很好地配合使用。

Rinari 有一个功能可以为我正在编辑的 Rails 应用程序启动一个 Web 服务器实例,但是它使用服务器实例打开的缓冲区是 eshell。

我怎样才能最终让它使用 shell(或者用 Mx shell 打开)打开一个缓冲区?

下面是我要执行的命令的定义。

是否只有我可以更改的设置或查找要打开的 shell 的变量?

(defun rinari-web-server (&optional edit-cmd-args)
  "Run script/server.  Dump output to a compilation buffer
   allowing jumping between errors and source code.  With optional
   prefix argument allows editing of the server command arguments."
  (interactive "P")
  (let* ((default-directory (rinari-root))
        (script (concat (expand-file-name "server"
                   (file-name-as-directory
                    (expand-file-name "script" (rinari-root))))
         (if rinari-rails-env (concat " -e " rinari-rails-env))))
 (command (if edit-cmd-args
          (read-string "Run Ruby: " (concat script " "))
        script)))
(ruby-compilation-run command)) (rinari-launch))
4

2 回答 2

0

如果您找不到任何要配置的内容,您可以随时尝试以下操作:

(defun fooby ()
  ""
  (interactive)
  (eshell))

(defadvice fooby (around fooby-replace-eshell-with-shell-around act)
  "Substitute `shell` for `eshell` for the duration of this call"
  (flet ((eshell () (shell)))
    ad-do-it))

在调用fooby它的持续时间内,它将替代调用shell任何时间eshell的调用。您希望尽可能紧密地关注建议,因此如果您能找到实际调用的函数eshell,那将是建议的函数。当然,如果您不想挖掘,您可以随时提出建议rinari-web-server。如果您从不想要使用eshell,那么您可以使用fset全局进行替换:

(fset 'eshell 'shell)

希望有帮助!

于 2010-01-27T12:41:34.327 回答
0

我能够使用别名“emacs”来启动 Emacs.app,并且在我的终端环境中这样做,Emacs 然后在 eshell 中携带适当的 PATH。

于 2010-01-27T22:08:30.983 回答