ショートカットに複数のコマンドを割り当てることはできますか? (バッシュ、xterm)

ショートカットに複数のコマンドを割り当てることはできますか? (バッシュ、xterm)

以前は、カーソルが長いシェルコマンドの途中にある場合は、Ctrl+を押してC新しいコマンドプロンプトを表示できました。

Ctrlそれから+ K/について知り、C人生は良いです。残念ながら、これらのシーケンスは私にとってはやや厄介なので、1つのシーケンスに行全体をリセットするショートカットをマッピングしたいと思います。

Ctrlこれら2つのコマンドを実行するために+のようなXものをマッピングできますか?私は変数をチェックしman bashて見つけkill-whole-lineましたが、私の.bashrcでどのように実装するのかわかりません。またはこれが私が必要なものか(そうです)。

CtrlED:+がX最善の選択ではないかもしれないことを学びました。なぜなら別のbashショートカットに行く玄関口ですだから別のものを選んだ。

答え1

次の行を追加できます~/.inputrc

"\C-x": kill-whole-line

または、次の項目を追加してください~/.bashrc

bind '"\C-x": kill-whole-line'

可能なすべてのバインディングと有効なバインディングを表示するには、次の手順を実行します。

bind -p

で始まる組み合わせをバインド解除する必要があるかもしれません\C-x

答え2

複数のコマンドを単一のショートカットに直接割り当てることはできません。普通の人々はそうでしょう。~/.inputrc

"\C-x": some-readline-command (eg. kill-whole-line)

ただし、次のようにしてショートカットを任意の入力シーケンスにマップできます(ショートカットを介してバインドされたコマンドを参照して実行することもできます)。

"\C-x": "\C-knew text"

メモ:\C-x実際、上記は基本的にバインディングが他のバインディング(モードの\C-x\C-u場合など)の先行キーであるため機能しません。何かをするには純粋になるためには、これらすべてを解く必要があります。undoemacs\C-x

関連情報