При написании длинной команды в командной строке * nix и необходимости вернуться к первому символу, чтобы добавить что-то в начале (например, a nohup
, когда вы понимаете, что процесс будет длинным, или a sudo
, когда вы понимаете, что вам нужны права суперпользователя) курсор может занять много времени, чтобы вернуться к первому символу ...
Есть ли короткий путь, который позволяет прыгать прямо туда?
Я использую Mac, так что Homeэто не вариант
linux
command-line
unix
keyboard-shortcuts
cursor
clami219
источник
источник
sudo
это ввестиsudo !!
. Операция!!
заменяется предыдущей командой.Ответы:
Ctrl+Aдолжно сработать. Ctrl+Eсоответствует концу командной строки.
источник
Это зависит от рассматриваемой оболочки.
Некоторые оболочки (например, 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), чтобы я мог напечатать что-то вродеи эта привязка клавиш будет изменена в зависимости от оболочки. Обычно вы можете сохранить их в файле запуска (
~/.mkshrc
,~/.kshrc
) или, для GNU bash, в~/.inputrc
. Обратите внимание, что не все оболочки поддерживают привязку всех ключей во всех версиях.Обычно вы можете узнать, какие символы генерирует ключ, просто запустив
cat
оболочку, набрав ключ и наблюдая. Затем нажмите^C
( Ctrl-C) для отменыcat
.источник
^D^D
я все еще получаю «барахло» эхом ...Вы пробовали Домашний ключ? Я использую MobXterm для подключения к Linux, а также клавиши Home и End на клавиатуре, чтобы перейти к первому или последнему символу команды.
источник
Если вы переключились в
vi
режим, используяset -o vi
, вы можете нажать Escи либо, Iлибо Aввести текст в начале или в конце строки. Или, если вы просто хотите переместить курсор, это ^и $.источник
В режиме emacs (переключается с помощью:)
set -o emacs
это нажатием:В режиме vi (переключается с помощью:),
set -o vi
когда в командном режиме ( Esc) это нажатием:Смотрите также:
источник