Câu hỏi Làm cách nào để cuộn trong tmux?


Tôi chỉ mới bắt đầu sử dụng tmux, và tôi thực sự thích nó, nhưng tôi cần để có thể cuộn trong vùng đệm / cửa sổ / cửa sổ mà tôi đã mở. Tôi không quan tâm nếu nó hoạt động với con chuột hay không. Khi tôi tìm kiếm trang người dùng tmux, tôi chỉ tìm thấy hai trường hợp của từ "cuộn" ngay cả khi hiển thị và cả hai đều phải làm với chế độ sao chép. Có cách nào để cuộn mà không có tất cả các chi phí của việc nhập chế độ sao chép?


1061
2017-11-10 18:40


gốc


Bạn đang lo lắng về chi phí nào? copy-mode là cách để xem lịch sử (và tùy chọn sao chép nội dung ra khỏi nó). - Chris Johnsen
đối với tôi, bạn có thể nhấn f7 cho chế độ cuộn và q để thoát - JohnMerlino
set -g mode-mouse on câu trả lời của mỗi @ chaiyachaiya là người chiến thắng cho tôi - Peter Berg


Các câu trả lời:


Ctrl- -b sau đó [ sau đó bạn có thể sử dụng các phím điều hướng thông thường để cuộn quanh (ví dụ: Mũi tên lên hoặc là PgDn). nhấn q để thoát khỏi chế độ cuộn.

Hoặc bạn có thể nhấn Ctrl- -b  PgUp để chuyển trực tiếp sang chế độ sao chép và cuộn một trang lên (đó là những gì nó giống như bạn sẽ muốn hầu hết thời gian)

Trong vi chế độ (xem bên dưới), bạn cũng có thể cuộn trang lên / xuống dòng bằng cách sử dụng Shift- -k và Shift- -j (nếu bạn đã ở chế độ cuộn). Chưa thay đổi, con trỏ di chuyển thay vì trang.

Trích từ trang người đàn ông:

tmux có thể được điều khiển từ một máy khách được đính kèm bằng cách sử dụng tổ hợp phím khóa tiền tố, ‘C-b’ (Ctrl-b) theo mặc định, sau đó là một phím lệnh.

 The default command key bindings are:

[           Enter copy mode to copy text or view the history.

Function                     vi              emacs
--------                     --              -----
Half page down               C-d             M-Down
Half page up                 C-u             M-Up
Next page                    C-f             Page down
Previous page                C-b             Page up
Scroll down                  C-Down or C-e   C-Down
Scroll up                    C-Up or C-y     C-Up
Search again                 n               n
Search again in reverse      N               N
Search backward              ?               C-r
Search forward               /               C-s

Cộng thêm một loạt nữa. Lưu ý rằng bạn phải nhấn C-b hai lần nếu bạn sử dụng nó cho trang từ C-b bị ràng buộc như phím lệnh. Xem trang hướng dẫn sử dụng để biết thông tin về việc mở đầu lệnh chế độ sao chép với số lần lặp lại.

Bạn có thể đặt chế độ ràng buộc khóa bằng Ctrl- -b, sau đó

:set-window-option mode-keys emacs

hoặc là vi.


1296
2017-11-11 03:02



Tôi nghĩ C-b = Là choose-buffer theo mặc định. Ý bạn là C-b [ (đó là copy-mode theo mặc định)? Ngoài ra bạn cũng có thể sử dụng C-b PageUp để bắt đầu sao chép chế độ trực tiếp trên trang trước (rất tiện dụng khi bạn biết những gì bạn muốn xem / sao chép đã được cuộn ra khỏi trang hiện tại). - Chris Johnsen
Đúng, tmux của tôi không có chế độ cuộn. Bạn cần phải C-b [ để vào chế độ sao chép và sau đó sử dụng các emacs hoặc vi-bindings để di chuyển xung quanh. Điều này có vẻ như rất nhiều bước chỉ để di chuyển, nhưng những lợi ích của tmux vẫn lớn hơn những phiền toái này. Tôi đang sử dụng macbook và không có phím PageUp: - \. (Ngoài ra, làm thế nào để tôi tạo ra chìa khóa với markdown như bạn đã làm, Dennis?) - chadoh
@chadoh: Dùng thử trên Macbook của bạn: Trang chủ: fn-LeftArrow; Kết thúc: fn-RightArrow; Page Up: fn-UpArrow; Page Down: fn-DownArrow. Để tạo keycaps: <kbd>Ctrl</kbd> - Dennis Williamson
trên macbook, fn + up chuyển thẳng đến ứng dụng đầu cuối và không bao giờ truy cập tmux - Tyler
Trên macbook nếu bạn đang ở chế độ cuộn, bạn có thể sử dụng fn + Shift + LeftArrow để cuộn lên một trang. - Nick Hammond


Vâng, bạn nên xem xét cách thích hợp để đặt cuộn: thêm vào tmux.conf

set -g mouse on        #For tmux version 2.1 and up

hoặc là

set -g mode-mouse on   #For tmux versions < 2.1

Nó làm việc cho tôi trong cửa sổ và tấm. Bây giờ tmux chỉ là hoàn hảo.

Thực tế tmux có thêm thông tin về các tập tin tmux.conf.


237
2017-11-25 13:05



Khi tôi thực hiện việc này, các lần nhấp và cuộn chuột gây ra các ký tự vô nghĩa được in tới vùng nhắc của thiết bị đầu cuối mà tôi đang sử dụng với tmux. Bất kỳ ý tưởng? - ely
Người dùng chuột tmux tương lai: Để lưu bạn phải cuộn xuống dưới cùng một lần nữa trước khi nhập, bạn có thể nhấn q để thoát khỏi chế độ cuộn. - Jezen Thomas
Di chuyển chuột hoạt động tốt với điều này, nhưng tiếc là tôi không thể sử dụng chuột để chọn văn bản nữa. Sử dụng Tilda và tmux. - friederbluemle
Lưu ý rằng trong tmux 2.1 trở lên, điều này được thay thế bằng set -g mouse onvà cuộn không tự động nhập chế độ sao chép giống như trước đây. - thrnio
Lưu ý quan trọng: Cài đặt này sẽ làm nổi bật và sao chép văn bản. Sử dụng shift + click để duy trì chức năng này. - Shadoninja


Từ tệp .tmux.conf của tôi:

# Sane scrolling
set -g terminal-overrides 'xterm*:smcup@:rmcup@'

Điều này cho phép cuộn xterm tự nhiên.


125
2017-08-22 20:49



Bạn có thể giải thích chính xác điều này không? - Ivo
Tôi không biết nó là gì, nhưng đó là thiên tài thuần khiết. Cuối cùng, tmux di chuyển hoạt động, yay! - oneself
Điều này không hiệu quả đối với tôi trên OS X ... - Nick
Dung dịch: gist.github.com/1297707 - Nick
Kiểm tra điều này nếu bạn bối rối về câu trả lời của togdon: superuser.com/questions/310251/…   IMO, nếu bạn chỉ có một cửa sổ duy nhất, giải pháp này hoạt động tốt hơn câu trả lời được chấp nhận. - thameera


Đối với tmux 2.1 mới nhất, để cuộn bằng chuột một cách hợp lý, đây là câu trả lời đúng:

set -g mouse on
" sane scrolling:
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e; send-keys -M'"

không đủ để tải lại tệp .tmux.conf của bạn, bạn cần khởi động lại tmux, ví dụ: tmux kill-server && tmux

được lấy từ https://github.com/tmux/tmux/issues/145


39
2017-12-01 16:09



Làm thế nào đây không phải là câu trả lời được chấp nhận? - Marcel
lưu ý trong câu trả lời này về "không đủ để tải lại đơn giản .tmux.conf đã giúp" và thoát tất cả các phiên tmux cho tôi (có thể máy chủ giết người sẽ hoạt động) đã giúp! - Colin D
bạn có thể giải thích về cách thức hoạt động của nó không? - oligofren
Nó xuất hiện để chuyển tiếp các sự kiện chuột khi con chuột được nhấp / cuộn / etc. nếu cửa sổ nằm trong trạng thái gián tiếp / đệm (chỉ là chế độ sao chép?), và chuột đang nhấn một nút, cuộn, vv Phần cuối cùng bao gồm cuộn ở chế độ trực tiếp bằng cách chuyển sang chế độ gián tiếp trước. Nếu không cho những điều khiển đó, thiết bị đầu cuối có thể giải thích các sự kiện như cuộn lịch sử, nếu có. Với điều đó, tôi không biết liệu tôi có thể có được máy nhắn tin và Vim của mình để di chuyển một cách chính xác cùng một lúc hay không, và tôi đã thử một loạt các câu chuyện xung quanh. - John P


Trong trường hợp của tôi, chỉ opt + Mũi tên lên và opt + DownArrow trên OSX.


12
2018-04-17 03:43



@ fixer1234 Câu hỏi không đề cập đến Linux chút nào. tmux cũng có thể được sử dụng trên OS X. - slhck
@slhck: Cảm ơn. Quá bleary mắt; loạn thị bắt đầu. Tôi đã đọc sai thẻ tmux như một thẻ linux. - fixer1234


Đây là cách tôi đã làm cho nó hoạt động, và lý do tại sao tôi nghĩ rằng nó là tốt hơn so với cách mặc định.

Để dùng thử, hãy đặt tất cả các phần mã vào ~/.tmux.conf.

Bước 1. Thay đổi khóa tiền tố, do đó bạn sẽ không phải tiếp cận một chút. 'B' dường như là một khóa gần, nhưng nó nằm ở giữa hai ngón trỏ (tương ứng là 'F' và 'J'). Bởi vì phím tắt đó là cần thiết trong tmux, C-j tốt hơn nhiều vì nó liên quan đến chuyển động bằng tay zero (ngoài việc nhấn phím).

set -g prefix C-j
unbind C-b
bind C-j send-prefix

Bước 2. 'S' (để vào chế độ sao chép) là: 1) đóng (cùng lý do như trên), 2) liên quan đến mặt khác (so sánh: 1-2 trong quyền anh, hoặc ls lệnh để xem các tập tin trong một thư mục), và 3) có thể được coi như là bộ nhớ cho "cuộn" (mặc dù chế độ sao chép không chỉ là về cuộn).

bind s copy-mode

Bước 3. Phần cuối cùng, cuộn thực tế. 'P' và 'N' quen thuộc với mục đích này cho người dùng Emacs. Họ là gần gũi, trực quan ('P' là trên 'N' trên bàn phím), và mnemonic ("trước" và "tiếp theo"). Nếu bạn chỉ làm một số cuộn trong Emacs, và sau đó đi đến tmux, nó có ý nghĩa để có những phím tắt.

Tuy nhiên, tôi thấy rằng 'tôi' và 'K' thậm chí còn tốt hơn - chúng thậm chí còn gần hơn 'P' và 'N', và trực quan (vì lý do tương tự); như đối với việc ghi nhớ - khi di chuyển là một điều phổ biến để làm, việc ghi nhớ sẽ không thực sự quan trọng vì các phím tắt sẽ sớm bỏ qua bộ não của bạn và nhập vào bộ nhớ cơ.

bind -t emacs-copy 'p' scroll-up
bind -t emacs-copy 'n' scroll-down
bind -t emacs-copy 'i' scroll-up
bind -t emacs-copy 'k' scroll-down

10
2018-06-21 15:33





Tôi đã tìm kiếm rất nhiều về điều này và giải pháp tốt nhất cho tôi hoạt động như được đề cập trong hướng dẫn chi tiết này: http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/

Thêm các ràng buộc này vào ~ / .tmux.conf:

set -g mode-mouse on

unbind +
bind + \
  new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \;\
  swap-pane -s tmux-zoom.0 \;\
  select-window -t tmux-zoom

unbind -
bind - \
  last-window \;\
  swap-pane -s tmux-zoom.0 \;\
  kill-window -t tmux-zoom

Với cách tiếp cận trên được triển khai, bạn cũng có thể sao chép từ các cửa sổ trong cửa sổ phóng to vào mỗi ô đầu tiên sử dụng Tiếp đầu ngữ  +.

Một chi tiết quan trọng bị thiếu với chế độ chuột là nhấn Shift trước khi chọn một khu vực cần sao chép. Điều này sẽ sao chép nó vào bộ đệm đầu cuối truyền thống thay vì bộ đệm sao chép tmux. (https://wiki.archlinux.org/index.php/Tmux#Scrolling_issues)


6
2018-03-31 00:42



Đánh giá cao câu trả lời của bạn. Nhưng nhiều lần một số liên kết được giới thiệu có thể bị hỏng. Sẽ luôn có ích khi thêm phần cốt lõi của câu trả lời của bạn ở đây và cung cấp liên kết chỉ để tham khảo. - Prasanna