Bashのキーと同じWindowsシェルEscキー(行全体を削除)

Bashのキーと同じWindowsシェルEscキー(行全体を削除)

Windowsのコマンドライン(powershellとcmd)では、行のEscキーを押すとプロンプトに入力した内容がすべて削除されます。

EscBashプロンプトでキーを押しても何も起こらないことがわかりました。単語をタップして削除Escします。ただし、各単語に対してこれを行う必要があります。backspace

Bashをじっくり学んでいく中で、たまには並んで途中で奇妙な話をしても最初からやり直す方が良いという気がする時があります。これを行うには、押すことがbackspaceこれまで私が見つけた唯一の方法です。

あなたの仕事は何ですか?

clearコマンドとショートカットは知っていますが、Ctrl-L端末全体を消去することについては話しません。ちょうどライン。

答え1

欲しいkill-whole-lineしかし、これはbashではデフォルトでは制限されません。backward-kill-lineCtrlX Backspace)とunix-line-discardCtrlU)両方とも現在の点から行の先頭まで消去するので、行の終わりに行き、どちらかを使用するだけです。

答え2

Ctrl+を使用すると、C入力している内容をすべてキャンセルし、新しいコマンドラインを空にすることができます。CTRL + Cを使用してコマンドラインに戻るのは正しくありませんか?

答え3

Ctrl+a行の先頭に移動してCtrl+k行の最後まで削除

答え4

Ignacio Vazquez-Abramsの答えを少し拡張するには、次のようにEscbashのキーにバインドして(ほぼ)Windowsと同様の動作を得ることができます。kill-whole-lineEsc

bind '"\e":kill-whole-line'

この行をファイルに追加すると、セッション間の~/.inputrcバインディングが維持されます。

しかし、これを参考にしてください非常にEscBashは実際にはこのキーを他の修飾キー(たとえば、非永続AltまたはCtrl)として使用するため、非標準です。既存のキーバインディングリスト()を見ると、bind -P「\ e」で始まるキーの組み合わせにバインドされた複数のコマンドが表示されます(例:

"\eb": backward-word

Esc+ 組み合わせを設定して、Bカーソルを最も近い単語の先頭に戻します。Ctrl+に似ていますが、これを何度も何度も実行するには(もちろん)続けてください。EscB

これは私があなたが得る行動が次のようになったと言った理由を説明します。ほぼWindowsに似ています。を押すと、Escbashはそれを他のキーと組み合わせるかどうかを確認します。したがって、これをバインドしてから押して(または手を離す)、bashをクリアするkill-whole-lineまでに若干の遅延があります。 。Esc

しかし、それを気にせずに他のキーストロークを使用するように再教育するよりも遅れを取るには、そうすることができます。

(注:私は次のリンクを読んでクリックして、ここからほとんどの情報を得ました。この回答.)

関連情報