1

Emacs での Rails 開発には Rinari を使用しています。Mx シェルは、私の環境 (zsh) に対して正しく PATH された新しいバッファを開きます。Mx eshell はすべて間違った PATH を使用しているため、うまく動作させることができませんでした。

編集中のRailsアプリのWebサーバーのインスタンスを起動するRinariの機能があるのですが、サーバーインスタンスで開くバッファがeshellです。

最終的にこれを取得して、代わりにシェル (または Mx シェルで開くもの) を使用してバッファーを開くにはどうすればよいですか?

以下は、実行しようとしているコマンドのdefunです。

変更できる設定や、開くシェルを探す変数はありますか?

(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呼び出された呼び出しに置き換えられます。アドバイスにできるだけ集中したいので、実際に呼び出す関数が見つかったら、それがアドバイスになります。もちろん、掘りたくない場合は、いつでもアドバイスすることができます。を使用したくない場合は、を使用してグローバルに置換を行うことができます。shelleshelleshellrinari-web-servereshellfset

(fset 'eshell 'shell)

お役に立てば幸いです。

于 2010-01-27T12:41:34.327 に答える
0

'emacs'にエイリアスしてEmacs.appを起動することができ、ターミナル環境から起動すると、Emacsはeshell内の適切なPATHを引き継ぎます。

于 2010-01-27T22:08:30.983 に答える