CTRL-Mの端末ショートカットを別の組み合わせにマッピングする方法

CTRL-Mの端末ショートカットを別の組み合わせにマッピングする方法

CtrlJ他の投稿からキーストロークの代わりにターミナルに入力できることを読んでいますCtrlM。本当に良いです。Returnしかし、私が望むのは、次のような他の組み合わせに変更することです。キーをCtrlspacebar再マップしようとしましたが、成功しませんでした。F1

可能ですか?

ベストアンサー1

正確に何をしたいかによって異なります。

端末には2つの主なモードがあり、どちらも追加の設定で微調整できます。

  1. クッキング/標準モード。このモードでは、端末に^H(または^?)、^W^Uまたは@)、^V(または\)文字を使用して行を編集できる内部行エディタが提供されます。^J文字が受信されるまで端末デバイスから読み取られるアプリケーションには何も送信されません。
  2. 生のモデル。各文字は、入力直後、遅延後、または文字が多すぎると端末デバイスを読み取るアプリケーションで使用できます。時間そしてパラメータがありますが、とにかく内部行エディタは使用されません。

どちらの場合も、^M(CR)文字は自動的に^J(LF)に変換されます(またはEnterキーを押すとCRとLFの両方を送信する端末の場合は無視されます)。

最初のモードは端末の基本モードです。 2番目のモードは、回線編集を制御したい、zshまたはbashアプリケーションで使用されます。vi

最初のモードでは、行を承認するために使用される文字を変更することはできません。

^Jただし、このキーまたはそのキーを押すと文字を送信するように端末に指示できます。たとえば、X11リソースを使用してキーマップを変更し、指定されたキーが押されたときに必要なものを送信するように指示できますxtermtranslations端末がキーボードの再マッピングをサポートしていない場合でも、GNUを使用screenして翻訳を実行できます。たとえば、端末が時間^[OPに合わせて一連の文字を送信する場合は、F1次のように追加できます。

bindkey \033OP "\012"

~/screenrc押すとLFを送信するようになります。F1

2番目のケースであるアプリケーション制御入力では、上記と同じ方法を引き続き使用できますが、個々のアプリケーションごとにこれを行うように構成することもできます。F1

たとえば、zshLF 文字はaccept-line zshウィジェットにバインドされます。次のことができます。

bindkey "^[OA" accept-line

F1同じウィジェットにバインドします。

通常、Ctrl+SpaceNUL文字が送信され、それを呼び出すことができ\0ます^@

おすすめ記事