Горячие клавиши в GNU Screen

Часто GNU Screen ругают за неудобную систему хоткеев в стиле emacs, т.е. за хоткеи с префиксом. Честно признаться, мне такие хоткеи наоборот ближе, но многих они раздражают. «GNU — это вам не хрен собачий» и посему screen дает возможность изменить не только горячие клавиши с префиксом, но и создать их без префикса. Иногда это удобно — к примеру, для смены региона проще воспользоваться чем-то схожим с привычным Alt-Tab или для выбора шела(окна) сочетанием вида Alt+цифра с номером окна.

Сразу оговорюсь, этот пост выбивается из тех что я обычно пишу — это скорее вопрос чем рассказ о использовании bindkey...

В screenrc у меня красуются строки

# выбор окон по Alt-цифра
bindkey "\0331" select 1
bindkey "\0332" select 2
bindkey "\0333" select 3
#  и таак далее
bindkey "\0330" select 0

# ^Q закрывает окно, ^T открывает новый  shell(окно)
bindkey "^Q" kill
bindkey "^T" screen

# удаляем текущий регион регион с помощь Ctrl-o
bindkey "^O" remove

# сплиты, т.е. создание регионов
bindkey "^V" split -v
bindkey "^S" split

# переход по регионам, ^\ по-кругу
bindkey "^\" focus 
Ctrl-Tab не осилил, получается только один tab который нужен уже внутри screen, но им перехватывается...

Плюс этих клавиш помимо того что они без префикса в том что в отличии от префиксных они работают в любой раскладке клавиатуры и регистра ввода. Т.е. новое окно в моем случае будет вызываться и по ^+t и по русским ^+Е и ^+е. По этой же причине не реккомендую ^+H ставить на хоткей, ибо это всё же аналог клавиши Backspase и в итоге стереть символ не получтся ибо screen перехватит клавишу для выполнения своего действия...

Так же можно назначать и клавиши F1-F12, к примеру, F7 — bindkey -k k7, F9 — bindkey -k k9, F11 — bindkey -k F1, F12 — bindkey -k F2.

Признаюсь чесно, не разобрался я с bindkey в screen, часть клавиш сообразил, а часть даже не представляю как делать (те же F10, ^+Tab, сочетания вида Alt+буква) ибо нужный раздел man'а меня не то что не просветил в этом плане, а ещё больше запутал(в отличии от man ratpoison, где именно это часть достаточно понятная и в использовании интитивно понятная). Если кто мне разъеснит как всё же bindkey использовать буду очень признателен.
vit 10-09-2010
незнаю есть ли в арче такой пакет но в убунте точно есть byobu

While attending the Ubuntu Developer Summit (UDS) for Maverick, I was introduced to byobu by its developer - Dustin Kirkland. I found byobu much more user friendly than screen, as well as informative with its notification plugins (e.g., memory and processor usage, package upgrades, clock).

To get you started, here are some of the keyboard shortcuts (see the manual for more info: man byobu):
F2 - Create a new window
F3 - Move to previous window
F4 - Move to next window
F6 - Detach from this session
F8 - Re-title a window
F9 - Configuration Menu
vit 10-09-2010
раньше этот пакет звался screen-profiles
muhas 10-09-2010
есть такой, надо будет посмотреть - может в нем инфа по bindkey более вменяемая
(а кто догадался F1-F12 заюзать, тот же mc их уже юзает, screen перехватывать же будет)
muhas 10-09-2010
не... в byobu такого нет :(
nickm 10-09-2010
Про screen вопрос, немного офтоп правда.

Есть в screen фича выключить перенос строк (^a r) так вот, чтото не нашел способа проскроллить влево/вправо это дело.
Вопрос: можно ли и как?
muhas 10-09-2010
вроде как ^a r работает только на твою вводимую команду, т.е. скролить так же как и передвигаться по командам, а вот ^a [ в таком случае не помогает :(
так что скорее нет чем да
Juev 10-09-2010
Не знаю, я как то свыкся со стандартными комбинациями, мне даже нравится!
По крайней мере по ssh очень удобно работать со screen.
muhas 10-09-2010
самое смешное что я вроде как и свыкся и достаточно привык (вообще емаксоподобные сочетанию нравятся), но клавиш без префикса наделал но юзаю только ^\ ^q ^t и alt-цифра, достаточно удобно - к ^t так вообще моментом привык(от всяких фаерфоксов привычка)
nickm 10-09-2010
> вроде как ^a r работает только на твою вводимую команду, т.е. скролить так же как и передвигаться по командам, а вот ^a [ в таком случае не помогает :(

Ну я про случай, допустим выхлоп в mysql консоли не влезает в экран,
делаю -wrap, повторяю запрос, но не переносится, вот по результату вправо сдвинуться или он (screen) тупо отсекает что в экран не лезет и всё?
muhas 10-09-2010
+wrap для того что бы переносилось
вообще походу придется перенаправлять вывод в какой-нить most

походу обрезает. надо копать доки по скрину, но они не очень внятные...
nickm 10-09-2010
ага, в доках по скрину можно дооолго копаться. И каждый раз открывать для себя что-то новое.