30

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

4

7 に答える 7

10

レジスタ: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を参照してください

于 2011-08-31T01:14:42.063 に答える
10

私の読書から、コマンドバインディングに使用できるman screen唯一のメタ文字は次のようです:screenCTRL

   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".

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

于 2009-10-09T12:31:31.613 に答える
9

私はEmacsとスクリーンのユーザーでもあります。私は端末で Emacs を使うことはめったにありませんが (スクリーン セッションでも同様です)、シェル (Emacs のキー バインドを使用する) のためにも Ca をあきらめたくありませんでした。私の解決策は、Cj を screen のプレフィックス キーとして使用することでしたが、これは喜んで犠牲にしました。Emacs プログラミング モードでは、(newline-and-indent) にバインドされますが、これは RET にもバインドされているため、見逃すことはありません。

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

于 2009-10-15T08:30:10.100 に答える
8

Alt+をXコマンドのデフォルトのプレフィックスにして Ca を解放するには、次の行を .screenrc に追加します。

escape ^||
bindkey "^[x" command

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

于 2012-08-31T14:47:35.807 に答える
7

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コマンドであり(入力内容を解釈せずに直接挿入します)、MxはリテラルAlt-Xでした。

于 2009-10-10T18:35:13.680 に答える
0

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

私が見つけた最良の解決策は、次の ~/.screenrc ファイルです。

# C-a :source .screenrc

escape ^gg

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

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

于 2011-07-01T08:49:00.833 に答える