Làm cách nào tôi có thể kích hoạt cuộn con trỏ qua mousewheel trong emacs với urxvt?


1

chế độ chuột-bánh xe được bật trong emacs, tuy nhiên con trỏ không cuộn như trong các trình giả lập thiết bị đầu cuối khác, trên các bản phát hành khác. Tôi đã thực hiện rất nhiều công việc đào và dường như không thể tìm thấy câu trả lời. Một lần nữa tôi đang sử dụng urxvt và cuộn lên xuống văn bản trong cửa sổ nói, đầu ra nhật ký của một ứng dụng đang chạy xảy ra khi tôi di chuyển con lăn chuột. Trong emacs không có gì xảy ra với con lăn chuột và tôi tin rằng có một cách mà bánh xe cuộn có thể gây ra kết quả tương tự như nhấn mũi tên lên / mũi tên xuống.


Bạn có thể xem qua trình tự thoát nào (nếu có ...) emacs gửi để khởi tạo chế độ chuột. Tôi sẽ nắm bắt đầu ra từ việc chạy emacs với script và làm cho nó ở dạng hiển thị với bản đồ để xem các chuỗi thoát, tham khảo Trình tự điều khiển XTerm .
Thomas Dickey

Xin hãy cụ thể hơn. Thông điệp của bạn rất mơ hồ và khó hiểu: ví dụ, thật vô nghĩa khi nói về những con trỏ cuộn; bạn nói "... không cuộn .." và sau đó "... cuộn không hoạt động"; cuối cùng "... không cuộn như đã có ..." đang cầu xin một mô tả về sự khác biệt mà bạn đang thấy (cách nó cuộn trước đây, làm thế nào để cuộn bây giờ).
Stefan

Tài khoản
rabbitfeetz

Câu trả lời:


1

Tôi chưa thử nghiệm cụ thể cho emacs này, nhưng điều này cho phép cuộn chuột khi sử dụng vim, less, manv.v. 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:vtewheel cho bạn .Xresources (hoặc là .Xdefaults ) và chạy xrdb .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.