linux(gnu-)画面:Ctrl-a(デフォルトのコマンドキー)をAlt-aに「ワンショット」再マッピング

linux(gnu-)画面:Ctrl-a(デフォルトのコマンドキー)をAlt-aに「ワンショット」再マッピング

screensC-aまたは^a(デフォルトコマンド)バインディングを再マップしたり、Alt-a覚え^[aやすいワンタイムコマンド/スイッチを使用する方法を探しています。私はこれが2段階で達成できることを知っていますが、画面自体でのみ可能です。しかし、理想的には、screen実行時にコマンドラインにいくつかの引数を渡したいと思います。私が探しているのはTmuxsコマンドに似ていますset prefix M-a(またはかなり似ています。なぜなら、fafaikはscreenAlt / Metaキーの人間に優しい構文を理解していないからです)。このデフォルトを次に再マップできる場合は、^aより良いでしょう。AltGr-a

以下を試してください。

1. $ screen  -e '\0033''\0141' 

この値はshowkeyから取得されます。

$ # showkey -a                                                                                                                                                                                                                                                                                                                                                                                                                                                    
    Press any keys - Ctrl-D will terminate this program                                                                                                                                                                                                                                                                                                                                                                                                                                       
    ^A        1 0001 0x01            < Ctrl-a                                                                                                                                                                                                      
    ^[a      27 0033 0x1b            < Alt-a yields 2 lines : first line                                                                                                                                                                                                                   
             97 0141 0x61            < Alt-a second line

最初の行はC-aキーです。 2号線と3号線はAlt-a シングル、同時ボタン。画面に要求されたように2つの文字が表示されますが、期待-eどおりにマッピングできませんでした。

  1. 内部画面を見ると、例に示すように、どのような方法でもその-kオプションを活用できないかと思います。bindkey手動、内容は次のとおりです。

コマンド: バインディングキー [opts] [ひも[コマンドパラメータ]

議論」ひも' は、ジョブがバインドされる文字列です。これは固定文字列です。用語キャップキーボード機能名(「-k」オプションを使用して選択可能)

問題は、Alt / AltGrキーの「Termcap」エントリをどこで見つけることができるかということです。 man termcap何も表示されません。

また、たぶんSE回答役に立ちますが、正しい構文がわかりません。


代わりにこれを使用することを提案する人のためにTmux

  • 複数の異なるサーバーにSSHを介して接続する必要がありますが、ウィンドウの変更、C-b C-b古いサーバーに戻ることができないなど、主キーバインディングは厄介です(C-b lこれには使用する必要があります)。
  • セッションロックなし
  • 私の画面の「マッスルメモリ」
  • そして、必要に応じて覚えておくべき他のいくつかの質問もあります。 ;)

再マッピング AltGr<->は、Ctrlサーバーが無料であるため(Xによって汚染されないため)、X関連のプログラムが含まれていない限り、十分に良い解決策になりますX

ベストアンサー1

私はしばしばgnu画面のコマンド文字として^ Aを選択することについて疑問に思いました。なぜなら、この文字はreadlineなどで便利なので、よく使うキー押し機能です。

とにかく私は代わりに^ Xを使用します(他の目的で頻繁に使用されないためです)。

.screenrcに以下を追加します。

escape ^Xa

(からhttps://www.gnu.org/software/screen/manual/screen.html#index-escape-character):

脱出

コマンド文字をxに設定し、リテラルコマンド文字を生成する文字(メタコマンドをトリガーして)をyに設定します(-eオプションと同様)。各引数は 1 文字、^x (Cx の場合) 形式の 2 文字シーケンス、バックスラッシュの後に 8 進数 (文字の ASCII コード指定)、またはバックスラッシュの後に 2 番目の文字 (たとえば ^ または \. デフォルトは ^Aa 3番目、^または\と同じです。

おすすめ記事