43

Я новый пользователь экрана GNU. Я использую Bash очень долгое время и хочу попробовать GNU Screen.

Как вы знаете, GNU Screen использует 'Ca' (Control-A) в качестве командного символа. Проблема в том, что это мешает функции редактирования строки в Bash (и GNU Readline), потому что Control-A в Bash переместится в начало строки ».

Я знаю, что могу установить для командного символа другую последовательность клавиш, например «^ Q» или «` `» (Backtick), но у меня возникают проблемы с поиском другой последовательности клавиш, которая еще не используется (^ Q используется терминалом , backtick используется при написании сценариев оболочки). Похоже, что командный символ может быть только один или два символа в длину. Могу ли я установить символ управления экраном GNU на что-то вроде «Control-Shift-A»?

(Я не могу использовать более одной гиперссылки, поэтому я не могу ссылаться на документацию Bash)

6 ответов6

40

Нет необходимости в обходном пути.
Чтобы перейти к началу строки при использовании экрана в bash, используйте

Контроль - A (отпустить и затем) A


В общем, если есть экран управления конфликтами символов с Баш ярлыка, первый контроль Баш ярлыка будет заменен на контроль -

Аналогично для других ярлыков редактирования строки.

18

Проблема с Control- Shift- A заключается в том, что большинство программ эмуляции терминала не отправляют для него код, отличный от того, который был отправлен Control- A, поэтому экран не может увидеть разницу.

Возможно, вы сможете использовать Cq, если выполните stty -ixon чтобы отключить «управление потоком программ» на tty. Обычно я делаю это, чтобы использовать C для поиска в командной строке.

Вы могли бы рассмотреть C- ^, так как он, кажется, обычно не связан. Это Control - Shift - 6 на раскладках клавиатуры США, но это может быть трудно набирать на других раскладках.

Большинство людей никогда не используют управляющий символ tty C-\ для отправки SIGQUIT. Чтобы использовать его, отключите функцию tty с помощью команды stty quit undef и привяжите ее в качестве префиксного ключа. Это немного рискованно, так как, если вы нажмете C-\ на tty, где клавиша выхода не была отключена с помощью stty, вы можете убить процесс переднего плана вместо активации экрана.

Я перешел на Tmux некоторое время назад. По умолчанию это Cb, потому что он был разработан под экраном и не мешал настройкам экрана по умолчанию. Я обнаружил, что Cb работает довольно хорошо для меня (я обычно использую клавиши со стрелками для перемещения одного символа в командной строке оболочки, хотя я использую Mb и Mf для перемещения по словам).

Кстати, автор tmux использует Ca в своих основных сеансах и всегда вводит Ca дважды (независимо от того, используется ли сеанс tmux или нет). Если вы готовы принять эту привычку, это кажется достойным компромиссом, так как второй Ca должен быть недоступен в большинстве Emacs-подобных контекстов редактирования. Это не сработает, если вы будете часто использовать программы / контексты вне экрана, где второй Ca не будет запрещен.

По умолчанию Ca Ca связан с другой командой (переключиться на самый последний активный экран) на экране. Чтобы Ca Ca отправлял реальный Ca и имел окна переключения Ca o, поместите в свой .screenrc:

escape ^A^A
bind o other
3

Я использую это. screenrc

escape ^bb

Пример: чтобы отсоединить, вы ctrl-b d

3

Я использую C-\ для экрана, и я не могу рекомендовать его достаточно. Вы можете нажать любое другое ключевое определение в случае аварии, но обычно это не C-\. Вот что мне нравится в этом.

0

Я использую Ctrl-_ (который также может быть произведен с помощью Ctrl +7 и обычно Ctrl +/) с screen/tmux.

0

Я использую Ctrl-Z большую часть времени, но также использую Ctrl-X для некоторых. Я не так часто использую прерывание «стоп», но когда это необходимо, я могу набрать ^ zz. Это также позволяет мне запускать дополнительные сеансы экрана на удаленных серверах, которые используют ctrl-a по умолчанию. И если я начну третий сеанс (на третьем сервере), то я могу использовать Ctrl-X. Ctrl-x - это функция блокировки экрана, которая во многих средах не совсем обычна (поскольку экран часто запускается внутри эмулятора терминала).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .