Я новичок в GNU Screen, и до сих пор мне это нравится. Однако есть кое-что, что я не могу заставить работать так же, как в tmux.
Я хочу сделать так, чтобы Ctrl-a «клавиша со стрелкой» изменяла фокус между моими окнами. У меня обычно много разделений в окне терминала.
Я искал вокруг, но не смог найти конфигурацию, которая работает. Обратите внимание, я не хочу переключаться между окнами, просто фокус.
Бонусные баллы, если кто-то может объяснить разницу между «привязкой» и «привязкой» моего растрепанного мозга.
Ура
С тех пор :bind
не примет странные виртуальные символы как клавиши со стрелками — только нажатия клавиш, которые имеют коды ASCII или материал как ctrl thingThatHasAsciiCode —, я думаю с помощью :bindkey
, самый простой способ получить то, что Вы после. Для меня следующее работало под экраном 4.06.01 GNU в xterm и могло быть добавлено любой в "~/.screenrc" (влияние просто, Вы) или "/etc/screenrc" (означал применяться в масштабе всей системы):
# ctrlA then right-arrow-key jumps active cursor one pane to the right:
bindkey "^A^[OC" focus right
# ctrlA then left-arrow-key jumps active cursor one pane to the left:
bindkey "^A^[OD" focus left
# ctrlA then up-arrow-key jumps active cursor one pane above current:
bindkey "^A^[OA" focus up
# ctrlA then up-arrow-key jumps active cursor one pane below current:
bindkey "^A^[OB" focus down
В зависимости от Вашего терминала и настроек, коды необходимо поместить после "^A" может отличаться для Вас . Для определения, каковы эти коды я предпочитаю использовать vim
; откройте его и затем нажмите на меня для ввода режима редактирования, затем нажмите ctrl v для взятия необработанного входа, затем поразите ключевое или рассматриваемое сочетание клавиш * **.
при использовании моего подхода необходимо будет ввести команду клавиши со стрелкой ctrl справедливо быстро; screen
остановки, прислушивающиеся к пользовательской привязке, если Вы приостанавливаетесь слишком долго между нажатиями клавиш. Если это истекает слишком быстро, используйте :bindkey -t
вместо :bindkey
для отключения таймера.
* Примечание, что , в отличие от этого в vim
, экрану не понравится он, если Вы вставите фактический Escape метасимвола в ".screenrc" или другие файлы, Вы могли бы получить; просто используйте литерал, отдельный '^' и' [', не странная объединенная версия, которая vim
может произвести (по крайней мере, который, казалось, завинчивал вещи для меня).
** Некоторые люди определяют специальные коды клавиши путем выполнения cat
(отдельно) в терминале и затем нажатия рассматриваемой клавиши (перед использованием ctrl c для выхода). Я не использую этот подход так YMMV.