urxvt и vim конфликты клавиш (не работают хоткеи)

и другие vi-подобные редакторы

Модератор: /dev/random

Аватара пользователя
shok
Сообщения: 130
ОС: Gentoo

urxvt и vim конфликты клавиш

Сообщение shok »

День добрый. Возникла такая проблема. Ставлю в vim'e сочетание клавишь alt+1..9. В xterm все работает, а в urxvt нет. Впрочем как и Home, End, PgUp, PgDown. Гугль подсказал вот такое засунуть в .Xdefaults:

Код: Выделить всё

URxvt*keysym.0xff95:\033OH
URxvt*keysym.0xff9c:\033OF


и после этого заработали <Home>, <End>.

Подскажите, как отслеживаются эти коды. Как я могу подобрать все эти коды, чтобы потом прописать в .Xdefaults.
P.S. TERM=xterm не помогает. echo $TERM выдает rxvt-unicode. Оболочка Zsh, в нем прописывал такие строчки

Код: Выделить всё

bindkey '\e[1~' beginning-of-line
bindkey '\e[4~' end-of-line

но это не помогло
Лед тронулся, господа присяжные заседатели. Лед тронулся!
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 5105
ОС: Gentoo

Re: urxvt и vim конфликты клавиш

Сообщение /dev/random »

1) файл /usr/share/terminfo/r/rxvt-unicode имеется?
2) нигде в конфигах вима (у вас же в нём проблемы?) не прописывали терминал?
Спасибо сказали:

Аватара пользователя
shok
Сообщения: 130
ОС: Gentoo

Re: urxvt и vim конфликты клавиш

Сообщение shok »

1) файлик такой есть
2) в конфигах vim'a я не прописывал терминал

прилагаю свой vim конфиг (может я там что-то напортачил). Определение комбинаций Alt+<N> в самом конце. Это работает у меня через один самописный велосипед, но в xterm он работает т.ч. думаю проблема не в нем.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Лед тронулся, господа присяжные заседатели. Лед тронулся!
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 5105
ОС: Gentoo

Re: urxvt и vim конфликты клавиш

Сообщение /dev/random »

Мда. Фигово. Похоже, Vim разучился понимать комбинации <A-...> (<M-...>) в терминалах, генерирующих для этого префикс \033. Т.е. в подавляющем большинстве терминалов. Xterm - редкое исключение. Причём это поведение теперь документировано как преднамеренное (:help map-alt-keys). Боюсь, что эти комбинации придётся мапить не как "<A-...>", а как "<Esc>...". Причём желательно перемапить ещё и все стандартные комбинации с <Alt>.

Поскольку проблема всё-таки в виме, переношу тему в соотв. раздел.
Спасибо сказали:

Аватара пользователя
shok
Сообщения: 130
ОС: Gentoo

Re: urxvt и vim конфликты клавиш

Сообщение shok »

Но вопрос про PgUp PgDn еще в силе ;)
А вообще, на gvim все работает. в основе нужно для переключения между вкладками при программировании, в консоле править конфиги можено и без табов.
вот тут нарыл немного информации:
клик
Лед тронулся, господа присяжные заседатели. Лед тронулся!
Спасибо сказали:

Аватара пользователя
shok
Сообщения: 130
ОС: Gentoo

Re: urxvt и vim конфликты клавиш

Сообщение shok »

хелп
Лед тронулся, господа присяжные заседатели. Лед тронулся!
Спасибо сказали:

Аватара пользователя
SLEDopit
Модератор
Сообщения: 4764
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: urxvt и vim конфликты клавиш

Сообщение SLEDopit »

на решение не претендует (ибо костыль), но все же: если запустить screen, а в нем vim, то работает нормально?
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:

liaonau
Сообщения: 390
ОС: gentoo

Re: urxvt и vim конфликты клавиш

Сообщение liaonau »

shok писал(а):
05.03.2011 06:40

Код: Выделить всё

URxvt*keysym.0xff95:\033OH
URxvt*keysym.0xff9c:\033OF

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

Какие коды? Если 0xff9c, то с помощью xev, но можно и не hex заносить.
Если хотите, например назначить клавишу Insert удалять символ под курсором, то

Код: Выделить всё

Rxvt*keysym.Insert:\033[3~
А узнать что \033[3~ удаляет символ можно например так

Код: Выделить всё

echotc kD|cat -vte
узнать, что kD — это удаление символа можно из man terminfo.

Как-то так, если я вопрос понял правильно.
Спасибо сказали: