ターミナルで現在の行をクリア/削除するにはどうすればよいですか?


795

ターミナルを使用していて、コマンドのテキスト行を入力している場合、その行をクリア/削除するためのホットキーや方法はありますか?

たとえば、私の現在の行/コマンドが本当に長いものである場合:

> git log --graph --all --blah..uh oh i want to cancel and clear this line <cursor is here now>

上記から以下に移動するためのホットキーまたはコマンドはありますか?

>

通常私はキーを押します、そして私の現在のラインが歴史の真新しいものであるなら、それはそれをクリアします。ただし、キーを使用してコマンド履歴を確認し、それらのコマンドの編集または使用を開始すると、プロンプトは履歴内で次に新しいコマンドにのみ変更されるため、複数回押しない限り、ここでは機能しません。


6
ショートカットは、Bashのコマンドラインでより速く移動する このページでは、より多くの例示であり、私が思うよりよく説明
甲是好人を


回答:


1493

Ctrl+ Uを使用すると、最初までクリアできます。

Ctrl+ Wを使用すると、単語だけを削除できます。

Ctrl+ Cを使用してキャンセルすることもできます。

履歴を残したい場合は、Alt+ Shift+ #を使用してコメントにすることができます。


Bash Emacs編集モードのチートシート


231
Ctrl-Uで削除された行は、Ctrl-Yでも呼び出すことができます。
チェック

65
えっ?クールなおかげでkeks&kev、⌃ + Uはカーソルの前にすべて削除、, + Kはカーソルの後にすべて削除、⌃ + Aは行の先頭に移動します。したがって、技術的には⌃ + Cが質問の最善の解決策です
Binarian 2013

3
Alt-Shift-#が機能しませんか?他の人はそう思いました。Alt-Shift-#はターミナルに>文字を出力します
tgkprog '29年

49
<kbd>...</kbd>SOでキーを表示するようにタグを教えることに賛成。
Samveen 2013年

11
@LưuVĩnhPhúc ESCは、bashの独自の修飾キーです。それは歴史のナビゲーション(キャンセルのようなもののために使われていますCTRL+をr)、またはカーソル(後ろに最後の二つの単語を入れ替えますESC+ t)。
2014年

578

すべての答えを要約するだけです:

  • 行をクリーンアップする:Ctrl+ Uを使用して、最初までクリアできます。
  • 行をクリーンアップ:Ctrl+ E Ctrl+ Uターミナルの現在の行をワイプします
  • 行をクリーンアップ:Ctrl+ A Ctrl+ Kターミナルの現在の行をワイプします
  • 現在のコマンド/行をキャンセルします:Ctrl+ C
  • 削除されたコマンドを呼び出す:Ctrl+ Y(その後Alt+ Y
  • 行の先頭に移動します:Ctrl+A
  • 行末に移動:Ctrl+E
  • たとえば、コマンドの途中にいる場合は、前方の単語を削除します:Ctrl+K
  • 単語の先頭まで、左側の文字を削除します:Ctrl+W
  • コマンドプロンプト全体をクリアするには:Ctrl+L
  • 行の先頭と現在のカーソル位置を切り替えます:Ctrl+XX

6
ctrl-kは、カーソルと行の終わりの間のすべてを削除することに注意してください。
Peter Berg

6
次の単語を削除します:Alt + D
cnlevy

1
Alt+ D 機能しないので、これを含めません:(
J4cK

1
CTRL + L画面をクリアしますが、現在のコマンドラインで入力した内容は保持します。
Aziraphale 2016

1
Ctrl + Alt + >入力履歴の最後に移動します。これは、履歴の検索をキャンセルする場合に最適です。
astasiak 2018年

165

完全なショートカットリストがあります。

  1. Ctrl+ a カーソルを行頭に移動
  2. Ctrl+ e カーソルを行末に移動
  3. Ctrl+ b 1文字戻る
  4. Alt+ b 1語戻ります
  5. Ctrl+ f 1文字進む
  6. Alt+ f 1単語進む
  7. Ctrl+ d 現在の文字を削除
  8. Ctrl+ w 最後の単語をカット
  9. Ctrl+ k カーソルの後をすべて切り取ります
  10. Alt+ d カーソルの後にある単語を切り取る
  11. Alt+ w カーソルの前の単語をカット
  12. Ctrl+ y 最後に削除したコマンドを貼り付け
  13. Ctrl+ _ 元に戻す
  14. Ctrl+ u カーソルの前のすべてをカット
  15. Ctrl+ xx最初の位置と現在の位置を切り替える
  16. Ctrl+ l ターミナルをクリア
  17. Ctrl+ c コマンドをキャンセル
  18. Ctrl+ r 履歴内の検索コマンド-検索用語を入力します
  19. Ctrl+ j 現在の履歴エントリで検索を終了します
  20. Ctrl+ g 検索をキャンセルして元の行を復元する
  21. Ctrl+ n 履歴からの次のコマンド
  22. Ctrl+ p 履歴からの前のコマンド

5
申し訳ありませんが、便利なショートカットキーをすべて用意しました。7、8、9、10、11、14、16、17は、要件に応じて使用できるクリア/削除ショートカットキーです。
tharunkumar 2016年

2
CTRL+ L(16.)は、現在のコマンドラインの内容を保持することに注意してください。
Aziraphale 2016

Windowsでは、Ctrl + Shift + Aを使用して行の先頭に移動する必要があるようです
Gandalf458

3
Ctrl+ がありませんh:カーソルの前の文字を削除します
peflorencio


16

または、viモードを使用している場合Escは、cc

消去したものを元に戻すにはEscp:)


5
でviモードを有効にできますecho 'set editing-mode vi' >> ~/.inputrc。Pythonインタープリタープロンプトや一部のSQLクライアントなどの場所でも動作します
dwurf

11

あなたがそれを気に入っているかどうかはわかりませんが、私はCtrl+ A(行を開始するために)とCtrl+ K(行を削除するために)を使用しています。



6
  • Ctrl+ u:行の先頭までリングバッファーに移動する
  • Ctrl+ k:行の最後までリングバッファーに移動する
  • Ctrl+ w:文字と(複数の)単語をカーソルからリングバッファーに移動します

  • Ctrl+ y:リングバッファーから最後のエントリを挿入すると、Alt+ yを使用してリングバッファーを循環できます。を数回押して、リングバッファの「前の」エントリに進みます。


4

CTRL+ Rと入力して、履歴内の以前のコマンドを検索します。フルラインで表示されます。
CTRL+ R再び循環します。



2

リストに追加:

EmacsモードではEsc、を押してRからを押すと、行全体が削除されます。

どうしてか分からない、たまたま見つけただけ。おそらくそれは行の削除には使用されませんが、たまたま同じ効果があります。誰かが知っている場合は、教えてください、ありがとう:)

Bashでは機能しますが、Fishでは機能しません。


1
それはrevert-linereadlineコマンドです:「この行に加えられたすべての変更を元に戻す」。デフォルトでは、M-r(Meta-R)にバインドされます。これは、Alt-RまたはEsc Rのどちらでもかまいません。つまり、行が実際には削除されず、最初は空だった場合のみです。コマンド履歴をスクロールバックしてコマンドを変更してからを発行するとrevert-line、元のコマンドに戻り、行は削除されません。
ベンジャミンW.

2

カーソルの位置に関係なく行全体を削除するには、kill-whole-lineコマンドを使用できますが、デフォルトではバインドされていません。これは、たとえばCtrl+ Alt+ Kを挿入することでバインドできます。

"\e\C-k": kill-whole-line

Readline initファイルに(通常は ~/.inputrc)。

さまざまな発言:

  • すでに他で使用されているキーシーケンスを誤って再割り当てしないようにするには、を使用してすべてのバインディングを確認できますbind -P。提案されたバインディングを確認します

    bind -P | grep '\\e\\C-k'
  • Readline initファイル名は、シェル変数から取得されますINPUTRC。設定され~/.inputrcていない場合、デフォルトは、または(存在しない場合)/etc/inputrcです。あなたが持っている場合ことに注意してください~/.inputrc/etc/inputrc無視されます。
  • Readline initファイルをリロードするには、Ctrl+ X Ctrl+ を使用できますR
  • 関連するマニュアルセクションへのリンク:

2

ライン全体をクリーニングするには(2つの方法):

  • HomeCtrl+K
  • EndCtrl+U

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.