Экран Bash vs. Gnu: замените Ctrl-A на Ctrl-Shift-A

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

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

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

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

42 голоса | спросил Stefan Lasiewski 19 Mayam10 2010, 00:56:43

6 ответов


18

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

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

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

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

Я недавно переключился на tmux . Его значением по умолчанию является Cb потому что он был разработан под screen и не вмешивался в экран по умолчанию . Я обнаружил, что C-b работает достаточно хорошо для меня (я обычно использую клавиши со стрелками для перемещения одиночного символа в командной строке оболочки, хотя я использую M-b и M-f для перемещения по словам).

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

По умолчанию C-a привязан к команде other (переключается на последний активный экран) на экране . Чтобы C-a C-a отправил фактический C-a и имел окна переключения C-a o, поместите следующее в свой .screenrc:

escape ^A^A
bind o other
ответил Chris Johnsen 19 Mayam10 2010, 02:32:10
38

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

Управление - A (отпустите, а затем) A


В общем случае, если символ управления экраном конфликтует с ярлыком bash, первый Control в bash shortcut будет заменен на Control - A

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

ответил skyshock21 24 Jpm1000000pmMon, 24 Jan 2011 21:25:09 +030011 2011, 21:25:09
3

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

ответил MikeHoss 3 J0000006Europe/Moscow 2010, 22:29:22
3

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

escape ^bb

Пример. Чтобы отсоединить вас, введите ctrl-b d

ответил guettli 5 +03002015-10-05T11:17:07+03:00312015bEurope/MoscowMon, 05 Oct 2015 11:17:07 +0300 2015, 11:17:07
0

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

ответил graywh 15 J000000Thursday10 2010, 01:26:26
0

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

ответил Arcege 24 Jpm1000000pmMon, 24 Jan 2011 21:43:16 +030011 2011, 21:43:16

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132