Chuột lăn di chuyển ít hơn và vim bằng urxvt


17

Tôi đã bắt đầu làm việc với rxvt-unicode (aka urxvt) nhưng thấy có vấn đề với việc cuộn bánh xe chuột, so với gnome-terminalkonsole. Bánh xe chuột hoạt động tốt khi đi qua bộ đệm cuộn, nhưng nó không hoạt động để tự động cuộn vào less/ mosthoặc vim(mặc dù trong vim, cài đặt mouse=alàm cho nó hoạt động, nhưng theo một cách rất khác, tôi không phải làm gì với gnome-terminal/ konsole).

Có cách nào để thực hiện urxvthành vi như thế nào gnome-terminalkonsolekhi nào lessvimở đâu bánh xe chuột chỉ hoạt động?


Một câu hỏi tương tự đã xuất hiện trên serverfault trong một thời gian, nhưng chưa nhận được câu trả lời tích cực: serverfault.com/questions/10308/
mẹo

1
Cảm ơn, điều này không làm phiền tôi cho đến khi bạn chỉ ra điều đó!
Kyle Smith

Câu trả lời:


8

Câu hỏi cũ, nhưng: trong khi điều này không thể thực hiện được trong urxvt, tôi đã thực hiện một số thay đổi sẽ thêm một tùy chọn (juniorWheel) để thực hiện chính xác điều đó và làm cho nó hoạt động giống như các thiết bị đầu cuối dựa trên VTE.

Tùy chọn mới này thực hiện điều gì, khá đơn giản: khi sử dụng bánh xe chuột, nếu bạn đang ở trên màn hình phụ (*) thì sẽ không có thao tác cuộn nào và thay vào đó, 3 phím bấm giả giả sẽ được gửi đến ứng dụng đang chạy. Vì vậy, một bánh xe lên sẽ có kết quả tương tự như nhấn phím Lên ba lần và bánh xe xuống sẽ làm tương tự như nhấn 3 lần phím Xuống.

(*) không chắc đây có phải là thuật ngữ chính thức của Nét hay không, nhưng ít nhất đó là cách nó được gọi trong urxvt.

Dễ dàng đủ, nhưng điều đó làm các trick: bây giờ khi chạy man, lesshoặc bất kỳ ứng dụng khác có sử dụng màn hình thứ cấp, bạn có thể sử dụng bánh xe chuột để di chuyển xung quanh (hoặc bất cứ điều gì nói ứng dụng sẽ làm gì, nếu bạn nhấn phím Up / Down).

Cần lưu ý rằng tôi không chắc đây thực sự là cách mọi thứ được thực hiện trong các thiết bị đầu cuối dựa trên VTE - tôi chưa bao giờ kiểm tra - nhưng điều này thực hiện công việc, vì vậy nó hoạt động với tôi.

Thêm một chút thông tin và liên kết đến mã & PKGBUILD cho Arch Linux có thể được tìm thấy ở đó: http://mywaytoarch.tumblr.com/post/14455320734/scrolling-mouse-wheel-improvments-vte-like-in-urxvt

Hy vọng điều này có thể hữu ích cho một số!


1
Bất kỳ cập nhật trên các bản vá? Nó đã được đề xuất để đưa vào?
xanh lam

1

Câu hỏi hay! Một số bài viết hữu ích tôi sẽ trích dẫn Câu hỏi Linux - đầu ra lệnh "ít" - Tôi không thể cuộn qua nó! Diễn đàn Archlinux - Sử dụng Bánh xe Chuột ở người / ít hơn .

Có vẻ như ít hơn chỉ nghe các sự kiện bàn phím và không có hỗ trợ cho chuột. Yêu cầu bùa cho hỗ trợ chuột là mở Ref # 272 .

Giải pháp thực sự là sử dụng thiết bị đầu cuối hoặc máy nhắn tin khác ( Vimpager ).


Đã sửa trong phiên bản ít hơn 543
Hielke Walinga

1

Tôi đã viết điều này cho một câu hỏi rất giống nhau, xem /superuser//a/1356948/900060

Dán phần này vào $ HOME / .urxvt / ext / vtwheel (tạo tệp nếu nó không tồn tại):

#! 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 ();
}

Sau đó thêm URxvt.perl-ext-common:vtewheelvào .Xresources(hoặc .Xdefaults) của bạn và chạyxrdb .Xresources

Nguồn: https://aur.archlinux.org/cgit/aur.git/tree/vtwheel?h=urxvt-vtwheel

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.