4

端末から emacsclient で ' hello.txt ' と 'world.txt' という 2 つのファイルを開こうとしていますが、それらを 2 つの異なるウィンドウ(emacs の意味のように) で開きたいのですが、同じフレーム

次のようにemacsclientを呼び出します。

emacsclient -nw hello.txt world.txt

現在起こっていることは、1 つのemacsclientフレームが、hello.txt が表示される 1 つのウィンドウを表示することです。もう一方のファイルは、目に見えないバッファに開かれます。

emacsclientの代わりにemacsを使用すると、意図した結果が得られます (つまり、2 つのファイルが同じフレーム内で 2 つのウィンドウで開かれます)。emacsclient を emacs と同じように動作させるにはどうすればよいですか?

私はemacsclientが複数のフレームを生成するようにする方法を求めているのではなく、 emacsclientが同じフレーム内の分割ウィンドウで複数のファイルを開くようにする方法を求めていました。

4

3 に答える 3

3

変数server-windowは、見たいものです。この変数を、開くウィンドウを選択する関数に設定できます。

私のemacs設定には次のものがあります:

(setq server-window 'pop-to-buffer)

これにより、(単一の)ファイルを開くと、別のウィンドウ(必要に応じて作成)を使用してファイルが表示されます。ファイルを表示するための新しいウィンドウを作成し続ける server-window に渡す関数を見つけるか書く必要があります。

于 2015-02-18T20:07:39.363 に答える
3

emacsclient とファイルリストを使用して直接これを行うことはできないようです

少し冗長になりますが、lisp を emacsclient に渡して必要なことを行うことで、同じ効果を得ることができます。

emacsclient -t -e '(progn (find-file "file1")(find-file-other-window "file2"))' 

おそらく、これを小さなシェル スクリプトec2files.shにラップすることができます。これは、2 つのパラメーターを取り、それらをその Lisp 形式に補間します。

または、2 つのファイル引数を取り、それらを開く emacs init にロードする defun を作成します。

(defun example-split-window-2-files (f1 f2) 
  (find-file f1)
  (find-file-other-window f2))

そしてそれをemacsclient -eから呼び出します

emacsclient -t -e '(example-split-window-2-files "file1" "file2")'
于 2014-10-27T17:44:02.683 に答える