コマンドライン編集は、ターミナルではなくシェルの機能です。おそらくあなたのシェルはbashであり、おそらくコマンドライン編集スタイルは「emacs」に設定されています。
便利だと思われるEmacsスタイルのキーの組み合わせをいくつか紹介します。
- Ca:
beginning-of-line
- Ce:
end-of-line
- Mf:
forward-word
- Mb:
backward-word
- Cd:
delete-char
- Md:(
kill-word
次の「単語」を削除)
- M-DEL:
backward-kill-word
C- xはControl+を意味するxため、CaはControl+ aです。
M- xはMeta+を意味xしますが、おそらくキーボードにメタキーはありません。ので、代わりに、あなたはESCの使用できるX(すなわちEscape、その後にx)。ターミナルには、キーを押したまま押す前にESCを自動的に送信する設定がありますOption。この機能を使用すると、Mac OS XがOption修飾子を使用するときに通常提供する拡張文字処理が無効になります。あなたは、いくつかの拡張文字を使用して持つようにしたいのであれば、Option+ xESCに送るXを、あなたは、この有効にすることができターミナルオプションを選択します。
あなたの例で「こんにちは」に移行する方法はたくさんあります。
- 「Hello」の検索:Cr H ello Cj(またはESC)
- 通常のEmacsでは、RET(Return)を使用して現在の場所で検索を終了し、編集に戻ります。しかしbashでは、インクリメンタル検索がアクティブであっても、デフォルトのバインディングによりRET(つまりCm)は常に現在の行を実行します。したがって、Cj / ESC部分は通常のEmacsからの逸脱です。
- 行の先頭にジャンプして前方に移動します:Ca Mf Cf(または→)
- 行の先頭にジャンプしてから、単語で移動します:Ca Mf Mf Mb
- Mbを多く使用します(OptionをMetaにマップする場合にのみ実際に実行可能です)。
希望する交換を行う方法もいくつかあります。
- 単語を削除して置き換えます:Md H i
- 文字を削除して置換:Cd Cd Cd Cd Cd H i
- 「H」を過ぎて次の作業を削除し、置き換えます:Cf Md i
- 「H」を過ぎて残りの文字を削除し、それらを置き換えます:Cf Cd Cd Cd Cd i
単語の終わりで停止した場合(Ca Mf Mfを介して)、M-DEL H iを使用できます。
bind -P | less
他の興味深いバインディングを見つけるようなことをするかもしれません。詳細については、bash manページのreadlineセクション(またはbash情報ページのreadline部分)を参照してください。