Прокрутка колесика мыши в less и vim с помощью urxvt

я начал работать с rxvt-unicode (aka urxvt) но обнаружена проблема с прокруткой колесика мыши по сравнению с gnome-terminal и konsole. Колесико мыши отлично работает для перехода через буфер прокрутки, но не работает для автоматической прокрутки в less/most или vim (хотя в vim параметр mouse=a заставляет его работать, но совсем по-другому, что я не должен делать с gnome-terminal/konsole).

есть ли способ сделать urxvt веди себя как gnome-terminal и konsole, когда в less и vim где колесо мыши работает?

25
задан Adam Batkin
28.01.2023 23:54 Количество просмотров материала 3135
Распечатать страницу

3 ответа

старый вопрос, но: хотя это невозможно в urxvt, я сделал некоторые изменения, которые добавят опцию (secondaryWheel), чтобы сделать именно это, и заставить его вести себя как терминалы на основе VTE.

то, что делает эта новая опция, довольно просто: при использовании колеса мыши, Если вы находитесь на вторичном экране (*), то прокрутка не будет происходить, и вместо этого 3 "поддельные" нажатия клавиш будут отправлены в запущенное приложение. Таким образом, колесо вверх будет иметь тот же результат, что и нажатие клавиши вверх три раза, и колеса вниз будет делать то же самое, как нажать 3 раза клавишу вниз.

(*) не уверен, является ли это "официальным" термином или нет, но, по крайней мере, так это называется в urxvt.

достаточно легко, но это делает трюк: теперь при запуске man,less или любое другое приложение, которое использует дополнительный экран, вы можете использовать колесо мыши для перемещения (или все, что приложение будет делать, если вы нажали клавиши вверх/вниз).

надо отметить, что я не конечно, это на самом деле, как все делается в терминалах на базе VTE-я никогда не проверял, - но это делает работу, поэтому она работает для меня.

немного больше информации, и ссылки на код & PKGBUILD для Arch Linux можно найти там: http://mywaytoarch.tumblr.com/post/14455320734/scrolling-mouse-wheel-improvments-vte-like-in-urxvt

надеюсь, это может быть полезно для некоторых!

8
отвечен jjacky 2023-01-30 07:42

я написал это для очень похожего вопроса, см. https://superuser.com/a/1356948/900060

вставьте в $HOME/.urxvt /ext / vtwheel (создайте файл, если он не существует):

#! perl

# Implements a scrollwheel just like in good old vt100's mices

sub simulate_keypress {
    my ($self, $type) = @_; #type: 0:up, 1:down

    my $keycode_up = 111;
    my $keycode_down = 116;

    my $numlines = 3;

    my $keycode = 0;
    if ($type eq 0) {
        $keycode = $keycode_up;
    } elsif ($type eq 1) {
        $keycode = $keycode_down;
    } else {
        return;
    }

    for (my $i = 0 ; $i ne $numlines ; $i++) {
        $self->key_press(0,$keycode);
        $self->key_release(0,$keycode);
    }
}

sub on_button_release {
    my ($self, $event) = @_;

    #my $res_ss = $self->resource("secondaryScroll");
    #warn("ressource ss is <$res_ss>");

    !$self->current_screen and return ();

    #warn("foo, event: <$event->{button}>\n");
    if ($event->{button} eq "4") { # scroll up
        $self->simulate_keypress(0);
        return 1;
    } elsif ($event->{button} eq "5") { # scroll down
        $self->simulate_keypress(1);
        return 1;
    }

    return ();
}

затем добавить URxvt.perl-ext-common:vtewheel на .Xresources (или .Xdefaults) и xrdb .Xresources

источник: https://aur.archlinux.org/cgit/aur.git/tree/vtwheel?h=urxvt-vtwheel

1
отвечен Clara 2023-01-30 09:59

хороший вопрос! Какой-нибудь полезный пост я приведу Linux вопрос - "меньше" вывод команды-я не могу прокрутить его! и форум Archlinux-использовать колесо мыши в man / less.

кажется, что меньше просто слушают события клавиатуры и не имеют поддержки мыши. Запрос на поддержку мыши открыт Ref # 272.

реальное решение заключается в использовании другого терминала или пейджера (Vimpager).

0
отвечен dvd 2023-01-30 12:16

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх