これは、問題のシェルに依存します。
一部のシェル(AT&T ksh88など)では、入力行の編集はほとんどありません。
vi
モード編集を実装するシェルでは(これを有効にする必要がある場合がありますset -o vi
)、これを押すとEsc(挿入モードから切り替える)0、行の先頭$にジャンプするか、行の末尾にジャンプします。次に、を押して挿入モードにi戻ります–カーソルは現在の位置に留まります–またはa–カーソルを右に移動してテキストを追加します。
vi
モード編集は最近、POSIX標準によって義務付けられました。
より多くの一般的な emacs
編集モードは用途が(神に感謝し、それは、Emacsエディタスラッシュ・オペレーティング・システムとは関係ありません)Ctrl-A行の先頭にジャンプするとCtrl-E、行の最後にジャンプします。このモードではset -o emacs
、多くのシェル(最も顕著なAT&T ksh93)で実行する必要がありますが、mkshおよびGNU bash ではデフォルトで有効になっています。
最新のシェルのほとんどはemacs
、vi
モードとモードの両方をサポートしています。(これらのモードはどちらも動作するためにttyを必要とします。)
多くのシェルでは、キーバインドをカスタマイズできます。通常はemacs
モード用ですが、一部のシェルではvi
モードのキーバインドをカスタマイズすることもできます。これにバインドしたいキーがある場合は、最初にそれが生成するキーシーケンスを把握する必要があります(たとえば、私のシステムでAlt-CursorLeftは、Esc+[+1+;+3+D(^[[1;3D
; ^X
is Ctrl-Xand ^[
is Esc)を生成するので、
bind '^[[1;3D=beginning-of-line'
bind '"\e[1;3D":beginning-of-line'
シェルに応じて、このキーバインドが変更されます。通常は、スタートアップファイル(~/.mkshrc
、~/.kshrc
)またはGNU bashの場合はで保存できます~/.inputrc
。すべてのシェルがすべてのバージョンのすべてのキーのバインドをサポートしているわけではないことに注意してください。
通常cat
、シェルで実行し、キーを入力して監視するだけで、キーが生成する文字を確認できます。次に、^C
(Ctrl-C)を押して中止しcat
ます。