* nixコマンドラインで長いコマンドを記述し、最初に何かを追加するために最初の文字に戻る必要がある場合(たとえば、Nohup
、プロセスが長いものであることがわかった場合) 、またはSudo
、root権限が必要であることがわかった場合)、カーソルが最初の文字に戻るまでに長い時間がかかる場合があります...
まっすぐジャンプできるショートカットはありますか?
Macを使っているので Home オプションではありません
Ctrl+A うまくいくはずです。 Ctrl+E コマンドラインの最後に対応します。
これは問題のシェルに依存します。
一部のシェル(AT&T ksh88など)は、実質的に入力行の編集を提供しません。
vi
モード編集を実装するシェルでは(set -o vi
でこれを有効にする必要がある場合があります)、これは Esc (挿入モードから切り替える)の後に 行頭にジャンプする、または $ 行末にジャンプします。次に、を押して、挿入モードに再度入ります i –カーソルは現在の場所に留まります–または a –カーソルが1つ右に移動してテキストを追加します。
vi
モードの編集は、最近POSIX標準で義務付けられています。
はるかに一般的ですemacs
モード編集(感謝します、Emacsエディター、スラッシュ、オペレーティングシステムとは関係ありません)使用する Ctrl-A 行の先頭にジャンプし、 Ctrl-E 行の終わりにジャンプします。このモードでは、多くのシェル(最も目立つのはAT&T ksh93)でset -o emacs
を実行する必要がありますが、デフォルトでは mksh およびGNU bash。
最近のほとんどのシェルは、emacs
モードとvi
モードの両方をサポートしています。 (これらのモードはどちらも動作するためにttyを必要とします。)
多くのシェルでは、キーバインドをカスタマイズできます。通常はemacs
モード用ですが、一部のシェルではvi
モードのキーバインドをカスタマイズすることもできます。これにバインドしたいキーがある場合は、まずそれが生成するキーシーケンスを理解する必要があります(たとえば、私のシステムでは、 Alt-CursorLeft 作り出す Esc+[+1+;+3+D (^[[1;3D
; ^X
は Ctrl-X そして^[
は Esc)、次のように入力できます
bind '^[[1;3D=beginning-of-line'
bind '"\e[1;3D":beginning-of-line'
シェルによっては、このキーバインドが変更されます。通常、これらを起動ファイル(~/.mkshrc
、~/.kshrc
)に、またはGNU bashの場合は~/.inputrc
に)永続化できます。すべてのシェルではないことに注意してください。 bindindは、すべてのバージョンのすべてのキーをサポートしています。
通常、シェルでcat
を実行し、キーを入力して監視するだけで、キーが生成する文字を確認できます。次に^C
(Ctrl-C)cat
を中止します。
ホームキーを試しましたか? MobaXtermを使用してLinuxボックスに接続し、キーボードのHomeキーとEndキーの両方を使用して、コマンドの最初または最後の文字に移動します。
vi
モードに切り替えた場合は、set -o vi
、ヒットできます Esc そしてどちらか I または A 行の最初または最後にテキストを入力します。または、カーソルを移動したいだけの場合は、 ^ そして $。
Emacsモード(切り替え:set -o emacs
)次のキーを押します。
Viモード(切り替え:set -o vi
)コマンドモードの場合(Esc)それは押すことによる:
以下も参照してください。