2016-03-15 17 views
11

Có thể định cấu hình tốc độ cuộn tmux (sử dụng bánh xe chuột hoặc bàn di chuột) không?Cấu hình tốc độ di chuyển tmux

Loại xê dịch 2.1 đã phá vỡ (tùy thuộc vào cấu hình của bạn), buộc tôi phải cập nhật cấu hình của mình. Tôi đã làm điều đó một vài tuần trước.

Nhưng bây giờ tôi nghĩ rằng tmux cuộn * chậm hơn so với trước đây. Tôi nghĩ rằng tôi đọc bạn có thể cấu hình tốc độ di chuyển nhưng tôi không thể tìm thấy bất kỳ đề cập đến đó bất cứ nơi nào bây giờ.

* Cuộn bằng bánh xe chuột. (Tôi đang sử dụng bàn di chuột Macbook nhưng tôi nghĩ nó tương đương với bánh xe chuột.)

Tôi biết bạn có thể làm 10C-u (với các ràng buộc khóa vi) để tăng 10 trang, nhưng tôi cũng thích để có thể cuộn nhanh bằng chuột.

Tôi nghĩ rằng đây là tất cả các cấu hình có liên quan cá nhân tôi hiện có:

# Use the mouse to select panes, select windows (click window tabs), resize 
# panes, and scroll in copy mode. 
# Requires tmux version >= 2.1 (older versions have different option names for mouse) 
set -g mouse on 

# No need to enter copy-mode to start scrolling. 
# From github.com/tmux/tmux/issues/145 
# Requires tmux version >= 2.1 (older versions have different solutions) 
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'" 
+0

Tôi càng nghĩ tốc độ cuộn trong tmux không thay đổi trong 2.1. Tôi nghĩ rằng tôi đang nhầm lẫn nó với iTerm đơn giản mà không có tmux, nơi di chuyển có vận tốc biến tùy thuộc vào tốc độ bạn vuốt qua bàn di chuột. Có lẽ không phải cái gì đó có thể được cố định trong tmux thông qua cấu hình. Tôi đặt cược rằng sẽ cần phải là một yêu cầu tính năng tmux. –

+0

Nó có vận tốc, không trơn tru và nhanh như tmux, ngay cả với một tập tin cấu hình gần như trống rỗng. (Tôi tính nếu bạn đặt đủ móc trong cấu hình của bạn nó sẽ làm chậm mọi thứ xuống, nhưng điều đó dường như không phải là vấn đề của tôi.) –

Trả lời

1

Vâng đây là một giải pháp khá xấu (sử dụng chế độ chuyển hướng vim, lưu ý các kj).

bind-key -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if-shell -Ft= '#{pane_in_mode}' 'send-keys 5 k' 'copy-mode -e'" 

bind-key -n WheelDownPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if-shell -Ft= '#{pane_in_mode}' 'send-keys 5 j'" 

Không chắc nhưng những gì tất cả các cân bằng là, nhưng đối với người mới bắt đầu nó là xấu vì 1, con trỏ di chuyển trên tất cả các địa điểm và 2, có một sự chậm chạp khi bạn chuyển hướng, từ di chuyển lên với việc cuộn xuống hoặc ngược lại, trong khi con trỏ di chuyển đến cạnh khác của ngăn.

Nó có lợi thế mặc dù tốc độ cấu hình. Chỉ cần thay đổi 5 để điều chỉnh tốc độ.

Tiết lộ đầy đủ: Tôi nghĩ điều đó phải được lấy cảm hứng từ một thứ gì đó mà tôi đã đọc ở một nơi khác, bởi vì nó không còn rất quen thuộc bây giờ. Tôi ước tôi sẽ ghi nhận nguồn của mình.

+0

Không! đó là một ý tưởng hay :) Chỉ cần thay 'k' bằng' C-y' và 'j' bằng cuộn vim được dựng sẵn' C-e'. Không cần plugin. cảm ơn. – Hettomei

+0

Gần như hoàn hảo! Sửa đổi nhẹ để làm cho các sự kiện cuộn đi đến cửa sổ mà chuột được bật ngay cả khi nó không phải là cửa sổ hoạt động: 'bind-key -n WheelUpPane if-shell -F -t =" # {mouse_any_flag} "" gửi -keys -M "" if-shell -F -t = '# {pane_in_mode}' 'send-keys -t = H 5 k' 'copy-mode -e' " bind-key -n WheelDownPane if-shell - F-= "# {mouse_any_flag}" "send-keys -M" "if-shell -F -t = '# {pane_in_mode}' 'gửi-keys -t = L 5 j'" ' Cũng làm như vậy con trỏ nhảy lên trên cùng/dưới cùng khi cuộn để khắc phục sự cố độ trễ. –

5

Tôi đồng ý, tốc độ cuộn chỉ với một dòng ở dòng là quá chậm. Bạn có thể làm cho nó nhảy một nửa các trang:

bind -t emacs-copy WheelUpPane halfpage-up 
bind -t emacs-copy WheelDownPane halfpage-down 

Vẫn sửa chữa nửa trang được đề xuất ở đây quá nhanh và phá hủy ấn tượng khi di chuyển bằng cách thay thế chỉ bằng cảm giác nhảy. Để thực hiện các cuộn đi với tốc độ tùy chỉnh, bạn có thể thêm một số gửi-phím lệnh như thế này:

# Scrolling in tmux 
set -g mouse on 
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M; send-keys -M; send-keys -M; send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M; send-keys -M; send-keys -M; send-keys -M' 'copy-mode -e; send-keys -M; send-keys -M; send-keys -M; send-keys -M'" 
bind -n WheelDownPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M; send-keys -M; send-keys -M; send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M; send-keys -M; send-keys -M; send-keys -M' 'copy-mode -e; send-keys -M; send-keys -M; send-keys -M; send-keys -M'" 
-1

Có một mod cho tmux cho phép để xác định bất kỳ số lượng lệnh cho 'chế độ' keybindings: http://ershov.github.io/tmux/

Bạn có thể cuộn lên hoặc cuộn xuống nhiều lần hoặc thực hiện nó trong vòng lặp hoặc thậm chí tạo một quy trình để thực hiện.

Ví dụ:

bind -t emacs-copy WheelUpPane tcl { scroll-up ; scroll-up } 
6

Sử dụng các plugin tmux-scroll-copy-mode sẽ giúp đây.

Khi bạn đã cài đặt, chỉ cần thêm set -g @scroll-speed-num-lines-per-scroll 5 vào tệp .tmux.conf của bạn.

cuộn tốc độ-num-dòng-mỗi-cuộn - Đặt số dòng để cuộn cho mỗi sự kiện cuộn bánh xe chuột. Tùy chọn mặc định là 3, đó là tốc độ cuộn trong tmux 2.0.Số lớn hơn cuộn nhanh hơn. Để làm chậm quá trình cuộn chậm hơn một dòng cho mỗi lần nhấp bánh xe, hãy đặt giá trị thành số thập phân từ 0,0 đến 1,0. Với giá trị thập phân, chỉ một phần sự kiện bánh xe mới có hiệu lực. Giá trị phải> = 0. Ví dụ:

"3" (mặc định) - Cuộn ba dòng cho mỗi lần nhấp chuột bánh xe. "1" - Một dòng cho mỗi lần cuộn bánh xe chuột (mượt nhất). "0.5" - Cuộn một dòng chỉ trên mỗi lần nhấp chuột bánh xe chuột khác. "0,25" - Cuộn một dòng chỉ trên mỗi lần nhấp chuột cuộn bánh xe thứ tư.

+3

Điều này dường như không hoạt động với 2.5 – Ethereal

0

Đối tmux 2.4 trở lên, các công việc sau cho tôi:

bind -Tcopy-mode WheelUpPane send -N1 -X scroll-up 
bind -Tcopy-mode WheelDownPane send -N1 -X scroll-down 

này thiết lập nó để di chuyển 1 dòng tại một thời điểm.

Từ changelog - tìm kiếm Changes from 2.3 to 2.4

0

tôi không thể nhận được bất kỳ câu trả lời nào ở đây làm việc như của tmux 2.6, cuối cùng figured it out để đăng câu trả lời khác.

Tính năng này hoạt động như một tệp cấu hình độc lập.

set -g mouse on 

set-option -g status-keys vi 
set-window-option -g mode-keys vi 

bind-key -T copy-mode-vi WheelUpPane send-keys -X halfpage-up 
bind-key -T copy-mode-vi WheelDownPane send-keys -X halfpage-down 
Các vấn đề liên quan