Связывание клавиш со стрелками на экране GNU

Я новичок в GNU Screen, и до сих пор мне это нравится. Однако есть кое-что, что я не могу заставить работать так же, как в tmux.

Я хочу сделать так, чтобы Ctrl-a «клавиша со стрелкой» изменяла фокус между моими окнами. У меня обычно много разделений в окне терминала.

Я искал вокруг, но не смог найти конфигурацию, которая работает. Обратите внимание, я не хочу переключаться между окнами, просто фокус.

Бонусные баллы, если кто-то может объяснить разницу между «привязкой» и «привязкой» моего растрепанного мозга.

Ура

5
задан 6 April 2016 в 19:15

1 ответ

С тех пор :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.

6
ответ дан 7 April 2016 в 05:15
  • 1
    Так, официальный способ получить пакеты на Ubuntu 14.04 повреждается с официальными 14,04 packages†¦, Слова приводят me†к сбою ¦ – Sardathrion 25 August 2017 в 02:52

Другие вопросы по тегам:

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