Каков наименее конфликтующий префикс/escape-последовательность для экрана или tmux?

Экран идет с Ctrl+A. tmux, с другой стороны —, как разработано в экране — использует Ctrl+B. Оба нажатий клавиш, однако, также используются в редакторах, оболочках, и т.д. Таким образом выбор или каждый ухудшает пользовательский опыт и функциональность тех инструментов при использовании в tmux или экране.

Какой префикс конфликтует меньше всего с привязками клавиш других программ и оболочек?

96
задан 21.11.2015, 01:17

7 ответов

Я думаю ^\ (иначе. ^|) является лучшим, если это находится в удобной позиции по Вашей раскладке клавиатуры. Его использование в других программах довольно редко:

  • отправка SIGQUIT к процессу
  • прерывание для или циклы с условием продолжения в оболочке, когда ^C прерывается
  • toggle-input-method в emacs

Я не знаю ни о каком другом использовании. Старайтесь не случайно уничтожить процессы за пределами tmux или screen после привыкания к нему. Это произошло со мной только однажды за несколько лет все же.

~/.tmux.conf

unbind-key C-b
set -g prefix 'C-\'
bind-key 'C-\' send-prefix

~/.screenrc

escape ^|^|
49
ответ дан 07.12.2019, 07:57

Лично, b просто слишком далеко от Ctrl для меня. Когда я использую tmux, я, alway изменяют привязку от C-b до C-a. Основной конфликт с C-a является выбором все, но я не нашел, что это проблема с программами, с которыми я использую tmux.

2
ответ дан 07.12.2019, 07:57

Ctrl+A, как также известно, вызывает проблемы с Emacs, включая избивают режим Emacs. Это кажется, что это не проблема для Вас.

Ctrl+O является другой опцией, которую я видел. Apparantly, это - значение по умолчанию в RatPoison (это - менеджер по X-окну, которому не нужна мышь). Я использовал Ctrl+O, когда использование вложило экраны: Ctrl+O для внешнего и Ctrl+A для внутренних. Работавший хорошо, но отчасти испуганный мои коллеги.:-)

Я просто думал и если Вы используете vi, а не Emacs, существует несколько альтернатив. Ctrl+G не используется очень, например.

21
ответ дан 07.12.2019, 07:57

Я использую сложную систему для экрана. Мой Escape по умолчанию установлен на \140\140, который является обратной галочкой. Ctrl-A усложняет и Emacs и редактирование командной строки для меня в Zsh, и мне не нравится Ctrl-O (2 ручных управления для большинства экранных действий).

Я снова переплетаю' на экран 1 так, чтобы новые сессии были созданы слева направо на клавиатуре, запускающейся в 1. Это позволяет мне резервировать экран 0 для того, что я рассматриваю персистентными или ссылочными окнами. Это - очень быстрое, врученное жест (обратной галочке) 1, (обратная галочка) 2, (обратная галочка) 3 для свопинга между окнами.

Проблема с использованием обратной галочки в среде Unix при попытке вырезать и вставить shell/perl код сценария. Поэтому я bindkey F11/F12 для переключения между моим символом ESC.

bindkey -d -k F1        escape ^O^O # bound to F11
bindkey -d -k F2        escape \140\140 # bound to F12

Это подкачает Escape к Ctrl-O для того, когда я сделаю вырезанные и вставленные операции. Я нашел, что удар двойной галочки прост, и хороший компромисс для большинства экранных операций.

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

## command characters
escape \140\140                 # default is `

## sets caption and escape toggle
bindkey -d -k F2 process a     # bound to F12

## initial caption
caption always '%{= kW}%?%F%{+b KW}%:%{= kK}%? %= %?%F%{-b .c}>>>%{-}%? | %-w%{mW}%n* %t%? @%u%?%{-}%+w '

## registers to toggle bindkeys
register a "\140:eval 'bindkey -d -k F2 process b' 'process c' 'escape \\017\\017'^M"
register b "\017:eval 'bindkey -d -k F2 process a' 'process d' 'escape \\140\\140'^M"

## registers to change captions
register c "\140:caption string '%{= kW}%?%F%{+b mW}%:%{= kK}%? %= %?%F%{.c}ALT%{-}%? | %-w%{KW}%n* %t%? @%u%?%{-}%+w '^M"
register d "\017:caption string '%{= kW}%?%F%{+b KW}%:%{= kK}%? %= %?%F%{.c}>>>%{-}%? | %-w%{mW}%n* %t%? @%u%?%{-}%+w '^M"
12
ответ дан 07.12.2019, 07:57

Как GNU emacs, zsh, и пользователь MS Windows, я использую Управление-T. (например, в .screenrc:)

Escape "^T^T"

Да Управляют-T, имеет что-то связанное с ним, как опускающееся меню в способности Ubuntu, или транспонируйте символ в Emacs.

Я игнорировал C-o, потому что требуется две руки для меня.

2
ответ дан 07.12.2019, 07:57

Я услышал о 'используемой (обратной галочке), и затем просто необходимо ввести ее дважды для фактической обратной галочки. Могло бы быть лучше для vi пользователей, которые привыкли к действию (если Вы не делаете вещь Caps Lock).

4
ответ дан 07.12.2019, 07:57

Мне нравится резервировать ^Space для совершенно особых / общих операций, потому что я нахожу, что это самый легкий префикс для ввода, но прямо сейчас я пробую отображенный как prefix в tmux.

Это оставляет Ваши пальцы свободными немедленно перейти к команде, которую Вы хотите ввести.Попробуйте.

6
ответ дан 07.12.2019, 07:57

Я использую Ctrl-Q в tmux и до сих пор он хорошо работал. Однако должен отметить, что он конфликтует с управлением потоком оболочек. По умолчанию Ctrl-Q используется для повторного включения выхода после его остановки с помощью Ctrl-S. Несколько раз после случайного нажатия Ctrl-S я был удивлен застрявшей оболочкой и научился не нажимать Ctrl-S.

(Также можно отключить управление потоком с помощью stty -ixon, или привязать различные клавиши к stty start и stty stop. )

# tmux.conf
unbind C-b
set -g prefix C-q
11
ответ дан 07.12.2019, 07:57

Теги

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