2006年1月1日日曜日

binded by key bind

 screenについて調べてみたら、僕が考えている以上にscreenは便利なツールだという事が判明しました。得にセッションのデアタッチ/レジューム、マルチユーザモードは便利です。

 僕は遠隔地からsshで自宅のマシンに接続して、自宅のリソースを使って作業するって事があるのですが、その時にも当然emacsを使います。普段emacsではwindows.elというemacs上で動くscreenのようなelispを使っています。

 そしてwindows.elのprefix keyをC-zにしています。screenも同じprefixにしてあるので、screenを多用しようとするとこれが問題になります。具体的には次のような状況です。まずターミナル(puttyなりmltermなり)の上でscreenを起動し、そのウィンドウの1つでemacs -nwを起動し、そのemacsのフレームの中にwindows.elで複数のバッファを作成します。この時emacsからシェルに移ろうとしてC-z nを入力したとします。僕の希望する動作としては、screenが作成したemacsのウィンドウを離れ、別のウィンドウ(そこにはシェルのプロンプトがある)に移るというものです。しかしながらemacsでwindows.elが動いていて、これがC-zという入力を奪ってしまうので、実際にはemacsのフレーム内で別のバッファに移る事になります。

 最初はwindows.elのprefixをC-qに変更してみたのですが、すると今度はC-zをemacs自体が奪ってしまいemacsがサスペンドしてしまいました。それで、screenのprefixをC-qに変更し、windows.elのprefixはC-zのままという設定にして、ようやく望みの動作を得る事ができました。

 特に困ったのは、emacsが沢山のprefix keyを持つ事です。emacsと干渉しないprefixって余りないんですよね。



0 件のコメント:

コメントを投稿