4

emacsclientsによって指定されたファイル が、サーバーのファイルシステムではなく、emacsclients のファイルシステムに対して相対的になるように、 emacs サーバーをセットアップしようとしています。たとえば、マシン「darkstar」にemacsサーバーをセットアップし、「brightstar」のemacsclientを介してこのサーバーに次のコマンドで接続するとします。

emacsclient -nw '~/fantastic'

emacs サーバーは、brightstar ではなく darkstar で ~/fantastic ファイルを編集しようとします。私はこれの逆が好きです。私はあらゆる種類のこっけいな提案を受け入れます。

*背景メモ: さまざまなマシンで開いているすべてのバッファを追跡し、色の設定、バインドなどを追跡する emacs プロセスが必要です。このすべてを利用可能にして、任意のマシンで emacs を使用して複製したいと考えています。emacs サーバーはまさにこれを行っているように見えますが、クライアントのローカル ファイルを編集する機能はありません!

4

2 に答える 2

1

リモート マシン (Emacs を実行しているマシン) は、ローカル マシンのファイル システムをマウントしていますか? その場合、次のようなものを発行できます。

 emacsclient --eval ´(my-open-file "~/fantastic" "my-local-machine")´

my-open-file次に、たとえばファイルを開くことができる関数を作成できます//mounts/my-local-machine/home/YOUR-ACCOUNT/fantastic(これがマウント ポイントであると仮定します)。

emacsclient コマンドラインを構築するには、elisp ハッキングとスクリプト ハッキング (Ruby などを使用) が必要です。

于 2012-01-26T19:09:52.337 に答える
1

次のように、tramp を使用するシェル関数をセットアップするように設定できるはずです。

edit-local() {
    emacsclient -e "(find-file (expand-file-name \"$1\" \"/ssh:$USER@$(hostname):$PWD\"))"
}

もちろん、tramp プロトコルを設定したものに変更する必要があるかもしれません。

于 2012-01-26T23:19:06.127 に答える