ここには2つのラインエディターがあります。カーネルによって提供される基本的なラインエディター(標準モードのttyラインエディター)とbashのラインエディター(readlineライブラリを介して実装)です。これらの両方には、デフォルトでCtrl+にバインドされている「前の単語への消去」コマンドがありWます。キーは、正規モードのttyラインエディタ用にを介して設定できますstty werase。bashは、独自の構成でオーバーライドされない限り、tty設定で見つけたキーバインディングを模倣します。
werasettyラインエディタのアクションは構成できません。空白文字で区切られた(ASCII)単語は常に消去されます。ttyラインエディタを操作することはめったにありません。たとえば、cat引数なしで入力した場合などです。そこで豪華なキーバインディングが必要な場合は、readlineを使用するrlwrapなどのツールの下でコマンドを実行できます。
バッシュは、二つの提供前の単語を削除するためのコマンドを:unix-word-rubout(Ctrl+ w又はセットなどを介してstty werase)、およびbackward-kill-word(M-DELすなわち、Esc Backspace)現在のロケールで英数字のシーケンスとしてワードを扱いおよび_。Ctrl+でBackspace前の英数字のシーケンスを消去したい場合はstty werase、を設定せずに、次の行をに挿入します.inputrc。
"\C-h": backward-kill-word
これはあなたの端末がためにはCtrl + Hの文字を送信することを前提としていますCtrl+ Backspace。残念ながら、これは標準のバインディングがないこれらのキーの1つです(Backspace特に、歴史的な理由で混乱しています)。
デフォルトで(+ )にkill-wordバインドされている対称コマンドもあります。+ にバインドするには、まず端末が送信するエスケープシーケンスを特定し、次に対応する行をに追加する必要があります。+ を入力してから+ ; これは、イニシャルがエスケープ文字の視覚的表現であるようなものを挿入します。次に、バインディングはM-dAltDCtrlDelete.inputrcCtrlVCtrlDelete^[[3;5~^[
"\e[3;5~": kill-word
どちらかの単語の定義に満足できない場合は、bashで独自の定義を提供できます。bashでのemacsスタイルのキーバインディングの混乱する動作を参照してください。