7

emacs を (Windows 上で) 移植可能にするためのいくつかの提案を見てきました。私はこれを私のsite-start.elに持っています:

(defvar program-dir (substring data-directory 0 -4))

(setq inhibit-startup-message t)
(setenv "HOME" program-dir)

HOME 変数を変更して、私の .emacs 初期化ファイル (およびその他の初期化ファイル) が読み取られるだけでなく、emacs によって生成されたすべてがプログラム ディレクトリにとどまり、すべてのパスを 1 つずつ指定する必要がないようにしました。

これはうまく機能しますが、emacs サーバーが機能していません。「ターゲット マシンがアクティブに拒否したため、接続できませんでした」というエラー メッセージが表示されます。HOME 変数を変更しなければ、emacs サーバーは動作します。これを修正する方法はありますか?

4

2 に答える 2

6

Emacsのマニュアルを引用します。

(server-start を呼び出して) Emacs サーバーを起動すると、Emacs はサーバーへの TCP 接続に関する情報 (Emacs が実行されているホスト、リッスンしているポート、および認証文字列) を含むファイルを作成します。emacsclient は、TCP 経由でサーバーに接続する必要がある場合に、この情報を使用します。デフォルトでは、ファイルは ~/.emacs.d/server/ ディレクトリにあります。`-f file' または `--server-file=file' オプションを使用するか、EMACS_SERVER_FILE 環境変数をファイル名に設定することで、使用するファイル名を指定できます。

つまり、どこから呼び出しても、環境変数を使用または設定して、のファイルを使用するemacsclientように指示する必要があります。( Emacs 内ではなく、開始している環境で。) [ Emacsclient に「ソケット」の正しい場所を探すように指示することもできますが、これは Windows では機能しません。また、Unix (少なくとも Mac OS X と Aquamacs) では、ソケットは (501 は私の UID) のような場所になります。]${program-dir}/.emacs.d/server/-fEMACS_SERVER_FILEemacsclient
-s/tmp/emacs501/server

[ああ、ところで、この質問を見てください:どうすればポータブル Emacs を手に入れることができますか? 多分何かがあなたを助けるか、多分あなたはそれに追加する何かを持っています:-)]

于 2008-12-11T14:35:39.217 に答える
0

ここには、emacs 23.2 の Portable Apps バージョンの初期パッケージがあります。 初期テストはここで機能します。

于 2010-06-16T14:30:53.777 に答える