Это зависит от рассматриваемой оболочки.
Некоторые оболочки (например, 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
есть Ctrl-Xи ^[
есть Esc), чтобы я мог напечатать что-то вроде
bind '^[[1;3D=beginning-of-line'
bind '"\e[1;3D":beginning-of-line'
и эта привязка клавиш будет изменена в зависимости от оболочки. Обычно вы можете сохранить их в файле запуска ( ~/.mkshrc
, ~/.kshrc
) или, для GNU bash, в ~/.inputrc
. Обратите внимание, что не все оболочки поддерживают привязку всех ключей во всех версиях.
Обычно вы можете узнать, какие символы генерирует ключ, просто запустив cat
оболочку, набрав ключ и наблюдая. Затем нажмите ^C
( Ctrl-C) для отмены cat
.