Оболочка: как перейти к началу строки, когда вы находитесь внутри экрана?

70

Я внутри экрана (экран -Ра). У меня длинная команда, и я в конце. Вместо того, чтобы удерживать стрелку влево, как вы можете перейти к началу строки?

CTRL-A работает, когда я нахожусь в обычном окне, но когда я нахожусь внутри экрана, нажатие CTRL-A выдает мне сообщение «Нет другого окна» - похоже, что CTRL-A отправляется на экран.

Как вы переходите к началу строки на экране?

user11498
источник
3
Быстрое исправление: нажмите Homeклавишу, чтобы добраться до начала и Endдо конца строки.
1
Это также сильно зависит от используемой вами оболочки и режима ввода, хотя я предполагаю, что вы используете bash и привязки emacs по умолчанию.
Патрик
1
@hesse, учитывая, что у вашей клавиатуры есть Homeкнопка. Не всегда так
Маттео
ОП может быть заинтересован в этом связанном вопросе .
dotancohen

Ответы:

81

Используйте Ctrl- a aили измените комбинацию клавиш на экране (опция -e).

ангус
источник
6
В случае, если не ясно, вы нажимаете Ctrl- a, отпустите обе клавиши, а затем нажмите a. Не делайте ту же ошибку, которую я сделал, удерживая Ctrlнажатой. Хорошая эталонная карта для этого и других привязок клавиш: aperiodic.net/screen/quick_reference
Yzmir Ramirez
6

Либо вы можете изменить screenпривязки, либо вы можете изменить привязки вашей оболочки. Предполагая, что ваша оболочка есть bash, вывод bind -p | grep \C-aдолжен дать вам текущее действие, привязанное к Ctrl+A. Чтобы связать это действие с чем-то другим, используйте следующую форму:

$ bind '"\C-p": beginning-of-line'

Это будет связывать, Ctrl+Pчтобы переместить курсор в начало строки. Запомните двойные кавычки внутри выражения. Чтобы снять привязку, вам просто нужно установить ее в ничто:

$ bind '"\C-a": '

Чтобы просмотреть все входные последовательности, связанные с действием, используйте:

$ bind -p | grep beginning-of-line

Наконец, чтобы сделать связывание постоянным, вы можете поместить утверждения в ваш ~/.bashrcфайл и выпустить source ~/.bashrc.


источник
6

Ctrl- x- Ctrl- xпозволяет перейти к первому символу строки для любого Readline-совместимой среды , как Bash, Python и MySQL. Экран GNU безопасно игнорирует это. Нет необходимости настраивать конфигурацию.

Если вы используете это вместо Ctrl- a- a, вы используете консистентную комбинацию клавиш - вам не нужно иметь в виду, находитесь ли вы в GNU SCREEN или нет.

Для тех, кто заинтересован, та же самая клавиша быстрого доступа также позволяет вам перейти в конец строки, если вы уже в начале.

Танкист 六四
источник
5
На самом деле, C-x C-xесть exchange-point-and-mark. Просто так бывает, что по умолчанию метка находится в начале строки. Вы можете использовать, C-spaceчтобы установить метку где-нибудь еще.
Иван Андрус
Иван, как правило, что вы можете сделать после обмена точкой и маркировкой? Благодарю.
Сушил Джавади