現在定義されているキーボードショートカットをユーザーフレンドリーに説明する方法がある場合は非常に役立ちます。つまり、次の/etc/inputrc
行が与えられると
"\e[A": history-search-backward
"\e[11~": backward-word
そして~/.inputrc
ライン
"\e[A": kill-word
"\e\eOD": backward-word
\e[A
どのファイルが上書きされたかを調べるために、両方のファイルを繰り返す必要はありません。つまり、2つの代替ショートカットがあります。backward-word
つまり\e\eOD
、それが何を意味しても、kill-word
実際には現在のファイル(または下)の単語の終わりまで削除を意味します。理想的なソリューションは、次の内容を印刷します。
Delete until next word boundary: Meta-A
Go to the previous word boundary: F1; Ctrl-Left
Search history backwards: Meta-Up
(エスケープシーケンスをよりよく理解している人がショートカットを変更できることを願っています。)
Linuxでこれを印刷できるプログラムはありますか?
そのようなプログラムはOS、カーネル、またはキーボードによって異なる場合があるため、多くの設定が必要になる場合があります(たとえば、実際に送信されるエスケープ文字列を決定するために別のキーを押すshowkey
か押してユーザーをポーリングするプログラム)。xev
しかし、最終的にターミナルショートカットを効果的に使用する方法を知るには、許容可能な価格になります。
ベストアンサー1
短い答えは「いいえ」です。そのようなプログラムは存在しないと確信しています。
原則として、一つを作ることができます。 readline設定とターミナルエミュレータ(カーネルとハードウェアは関係ありません)を見てください。
bind -P | grep 'can be found'
キーバインディングはBashにリストされています。
abort can be found on "\C-g", "\C-x\C-g", "\e\C-g".
accept-line can be found on "\C-j", "\C-m".
コマンドにさらに説明的な名前を付けるには、bash文書またはreadline文書を解析する必要があります。
キーの順序とキーの間の対応関係は、端末(通常は端末エミュレータ)によって決定されます。一般的に入手は容易ではなく、取得方法は端末ごとに異なります。
emacs -q -nw
Emacsでも同様のことができます。端末で実行し、Ctrl+ H、C(describe-key-briefly
コマンド)を押してから、キーシーケンス(\e
is Escape)を押します。これにより、再構成されたファンクションキー(存在する場合)とそのキーがEmacsで実行するアクションが表示されます。 ReadlineのデフォルトのバインディングはEmacsから大きくインスピレーションを受けているので、Emacsの関数はしばしばreadlineの関数と似ていますが、必ずしもそうではありません。例:
Ctrl+H C ESC [ A
<up> runs the command previous-line