わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

BackSpace長押しやめましょう

コマンド入力中に,全く異なるコマンドを実行したいときに,BackSpaceの連打や長押しで消しています.

上のような状況では,Ctrlを押しながら,uを押せば(「Ctrl-u」と書き,「コントロールU」と言います),全部消えます.
消したのを戻したいなら,Ctrl-yです.
Emacsで,Ctrl-k*1というのを教わったでしょうか? これは,カーソルから行末までをカットするものです.カットしたのは,Ctrl-yでペーストできます.シェルの操作では,

  • Ctrl-k で,カーソルから行末までをカット(Emacsと同じ)
  • Ctrl-u で,行の最初からカーソルの一つ左までをカット
  • Ctrl-w で,単語*2をカット
  • Ctrl-y で,直前にカットしたのをペースト(Emacsと同じ)

となります.
これを応用すると,コマンド入力中に,先に実行しておきたいコマンドがあったのを思い出したときは,

  1. Ctrl-u で,現在の入力内容を削除し,
  2. 先に実行したいコマンドを打ち込んで,実行し,
  3. Ctrl-y で,先ほど打ち込んでいた内容を復旧する

とすればいいわけです.

*1:Emacsでは,この操作を「C-k」と表記しますね.

*2:正確には,単語の最初から,カーソルの一つ左まで.