Это зависит от рассматриваемой оболочки.
Некоторые оболочки (например, AT & T ksh88) практически не редактируют строку ввода.
В оболочках, реализующих редактирование в режиме vi
(вам может потребоваться включить это с помощью set -o vi
), это делается нажатием клавиши Esc (чтобы переключиться из режима вставки) с последующим нажатием 0 для перехода к началу строки или $ для перехода к концу линии. Затем повторно войдите в режим вставки, нажав i - курсор останется там, где он находится - или a - курсор переместится на один вправо, чтобы добавить текст.
Редактирование режима vi
недавно было предписано стандартом POSIX.
Гораздо более распространенное редактирование режима emacs
(слава богу, оно не имеет ничего общего с Emacs editor-slash-operating-system) использует 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
.