- まず localhost 上。
- Lisp にて
(excl:start-emacs-lisp-interface t 1 7666 "~/.eli-startup")
を評価。すると~/.eli-startup というファイルができる。
このファイルの中身は、
^A7666 542496 :upper (8 (1) :FINAL 7) 1^A
というシンプルなもの。Emacs に渡す接続情報である。 - 次に、Emacs で、
(fi:start-interface-via-file "localhost" "*common-lisp*" "~/.eli-startup")
を評価。これでREPLが立ち上がる。メジャーモードは、TCP Common Lisp モード。このモードは、keymap は fi:lisp-listener-mode-map を使っている。 - この方法で接続した場合も、fi:common-lisp-mode で開いたソースファイルとの連携ができる。
- "localhost"をFQDNまたはIPアドレスに変更すれば、リモートの Lisp に接続できる。ただし起動情報ファイル(ここでは.eli-startup) をEmacsがあるホストで参照できるようにしておくこと。これは、ファイルを転送してもいいし、NFSやsambaで共有してもよい。
- この方法で、複数 Lisp に単一 Emacs からREPL接続することができる。ただし、fi:common-lisp-mode で開いた Lisp ソースと連携するのは一番最後に開いた REPL だけ。
- listenerを増やすことができるのも、一番最後に開いた REPL の Lisp だけ。
- この方法で、2つ以上の Emacs をひとつの Lisp につなぐこともできる。そのときも、
(excl:start-emacs-lisp-interface t 1 7666 "~/.eli-startup")
これは一個でよい。 - さて、
(excl:start-emacs-lisp-interface t 1 7666 "~/.eli-startup-1")
(excl:start-emacs-lisp-interface t 1 7667 "~/.eli-startup-2")
として、それぞれに別の Emacs をつなぐこともできる。ただし、
(excl:start-emacs-lisp-interface t 1 7666 "~/.eli-startup")
これひとつに2つの Emacs をつなぐのと、機能上の違いはない。:processes 的には、Editor Server が2つできるので違いはある。 - こうしてみると、かなり自由自在というか柔軟なんだな。
時間ができたときに、整理して 逆引きCommon Lisp に書こう。
こつこつ。
0 件のコメント:
コメントを投稿