web-dev-qa-db-ja.com

gnu screen-デフォルトのエスケープコマンドキーをALT-Xに変更しますか?

GNU画面で、デフォルトのCaではなくAlt-sにバインドするデフォルトのコマンドを変更したい(.screenrcを微調整する)理由は、emacsを使用しているためGNU screenはCaキーをバインドし、emacsに「Ca」を送信するのは面倒になります(@Nilsが言ったように、「Ca」を送信するには「Ca a」と入力する必要があります)、bashShellの「Ca」とエスケープをC-に変更することもできますが、それらのいくつかはすでにemacsにマッピングされており、他の組み合わせはALT-sほど簡単ではありません。誰かがすでにALTキーマッピングを行っている場合は、私に知らせてください。

24
Siva

man screenを読んだところ、screenがコマンドバインディングに使用できるメタ文字はCTRLだけのようです。

   escape xy

   Set  the  command character to x and the character generating a literal
   command character (by triggering the "meta" command) to y (similar to
   the -e option).  Each argument is either a single character, a two-character
   sequence of the form "^x" (meaning "C-x"), a backslash followed by an octal
   number (specifying the ASCII code of the character),  or a backslash followed
   by a second character, such as "\^" or "\\".  The default is "^Aa".

C-|のように不便であっても、emacsで使用しないマッピングがある場合は、ターミナル入力マネージャーを使用してALT-Xをそれに再マッピングし、ALTバインディングを使用できるようにします。代わりに。しかし、それは少しハックだろう。

9
rampion

registersおよび:bindkeyを使用して、:escapeコマンドの制限を回避することができます。 )コマンド。これを。screenrcに入れるだけです:

# reset escape key to the default
escape ^Aa

# auxiliary register
register S ^A

# Alt + x produces ^A and acts as an escape key
bindkey "^[x" process S

## Alt + space produces ^A and acts as an escape key
# bindkey "^[ " process S

http://adb.cba.pl/gnu-screen-tips-page-my.html#howto-alt-key-as-escape を参照してください。

8
askonecki

作る Alt+X コマンドのデフォルトプレフィックスと無料のC-aを使用して、.screenrcに次の行を追加します。

escape ^||
bindkey "^[x" command

副作用としてC- |コマンドプレフィックスにもなります。このキーも無料にする必要がある場合は、「escape ^ ||」を修正してください。それに応じて。

8
Alexei

私はEmacsとscreenのユーザーでもあります。ターミナルでEmacsを使用することはめったにありませんが、スクリーンセッションでは、シェルのC-aもあきらめたくありませんでした(Emacsキーバインディングを使用)。私の解決策は、画面のプレフィックスキーとしてC-jを使用することでしたが、これは犠牲にしてもかまいませんでした。 Emacsプログラミングモードでは、RETにもバインドされている(改行とインデント)にバインドされているので、見逃すことはありません。

ちなみに、これは答えではなくアドバイスだと思いますが、それでも投稿するには十分価値があると感じました。

7
paprika

Screenには、altバインディングの簡略構文はありませんが、8進コードを直接指定できます。たとえば私のマシンでは、Alt-xの16進コードはF8、つまり370 8進数なので、

エスケープ\ 370x

screenrcでエスケープコードをalt-Xに変更しました

Linuxでテストされ、画面4.00.03で動作します。

言語やコードセットなどに依存すると思うので、エスケープを変更する必要があるかもしれません。エスケープコードが何であるかをどのように見つけたかは、入力することでした。

$ echo -n ^QM-x | Perl -ne 'printf "%lo\n", ord($_)'

^ Qはreadlineのquoted-insertコマンドであり(入力内容を解釈せずに直接挿入します)、M-xはリテラルAlt-Xでした。

6
Jack Lloyd

仲間のemacsユーザーはこちら。

私が見つけた最善の解決策は、次のような〜/ .screenrcファイルです。

# C-a :source .screenrc

escape ^gg

ここでライブ更新: https://Gist.github.com/1058111

参照: http://ubuntuforums.org/showthread.php?t=498675

0
audiodude