Create  Edit  Diff  FrontPage  Index  Search  Changes  History  Source  RSS  Note  wikifarm  Login

エスケープキーの選択

screenのデフォルトのエスケープキーであるCtrl-aだが、変更している人は少なくない。自分がどんなソフトのどの機能を使うかに応じて上手に設定しよう。

以下に例と衝突する可能性のある他ソフトウェアの機能を挙げる。

Ctrl-a (screenのデフォルト)
Emacsのbeginning-of-lineコマンド / 類似の操作体系を持つエディタ、シェルでの行頭への移動コマンドと衝突。
Ctrl-o
Emacsのopen-line / Cannaの変換モード移行キー($,1vp正式名称?)と衝突。
Ctrl-q
Emacsのquoted-insertコマンド / 各種端末のフロー制御(XON)と衝突
Ctrl-t
Emacsの transpose-charsコマンド / viのインプットモードのインデント追加コマンド/ viのコマンドモードのpopコマンドと衝突。
Ctrl-z
各種端末でのサスペンドと衝突。
Ctrl-] (Ctrl-5)
telnetのデフォルトエスケープキー / viのコマンドモードのtagコマンド / emacsのabort-recursive-editと衝突(なお、ESCはCtrl-[)。また、screen自身のpaste(prefix ^])とも衝突する。この場合、prefix : paste .(ドットが重要)で代用できる。
Ctrl-^ (Ctrl-6)
viの直前に編集していたファイルに切り替えるコマンドと衝突。CISCOルータをtelnetで操作するときのエスケープキーと衝突。(Ciscoルータの操作では、Ctrl-Shifft-xを押してから6なので、Ctrl-6とはぶつからない)
Ctrl-\
Emacsのtoggle-input-methodコマンド / 端末のQUITシグナルと衝突。wnn, canna などと衝突する? skk との相性は良好。
Ctrl-l
多くの環境で再描画コマンドと衝突する。非screen環境で押下してしまった場合の悪影響が少ない。
そのほか
追加してみよう。

この他、Ctrl-;のような一般的な端末では入力する文字が存在しないキーの組み合わせを利用する人もいる。対応する文字が存在しないので、そのままでは入力はできない。端末側でこのキーバインドにエスケープシーケンスを割り当て、screen側ではそのシーケンスをエスケープに指定する等の工夫が必要(らしい。やったことある人補足よろ)。

例えば kterm では Xresource に

KTerm*VT100*Translations: #override Ctrl<Key>semicolon: ほげ

というような設定をする必要があるが,他の環境などで融通が効かないため一般には推奨されない.

他のポイントとして,screen外での操作時のうっかりミス,二重操作等による端末環境への被害の影響度合いがある.上記にあげられているもののうち,C-[, C-], C-z 辺りは影響が比較的小さく,C-o, C-t などは emacs などでは編集系コマンドに該当するため,比較的影響が大きいと考えられる.

Last modified:2009/07/19 11:47:23
Keyword(s):
References:[FrontPage]