Frage Wie scrolle ich in tmux?


Ich habe gerade angefangen, tmux zu benutzen, und ich mag es wirklich, aber ich muss in der Lage sein, innerhalb der Puffer / Fenster / Fenster, die ich geöffnet habe, zu scrollen. Es ist mir egal, ob es mit der Maus funktioniert oder nicht. Wenn ich die tmux-man-Seite durchsuche, finde ich nur zwei Instanzen des Wortes "scroll", die sogar auftauchen, und beide haben mit dem Kopiermodus zu tun. Gibt es eine Möglichkeit, ohne den gesamten Kopieraufwand zu scrollen?


1060
2017-11-10 18:40


Ursprung


Mit welchem ​​Aufwand beschäftigen Sie sich? copy-mode ist der Weg, um Geschichte zu sehen (und optional Zeug daraus zu kopieren). - Chris Johnsen
für mich können Sie drücken f7 für Scroll-Modus und q zu beenden - JohnMerlino
set -g mode-mouse on Die Antwort von @ chaiyachaiya war der Gewinner für mich - Peter Berg


Antworten:


Strg-b dann [ dann können Sie mit den normalen Navigationstasten blättern (z. B. Aufwärtspfeil oder PgDn). Drücken Sie q um den Bildlaufmodus zu beenden.

Alternativ können Sie drücken Strg-b  Bild auf um direkt in den Kopiermodus zu wechseln und eine Seite nach oben zu scrollen (was es so klingt, als ob du die meiste Zeit willst)

Im vi Modus (siehe unten), können Sie die Seite auch zeilenweise nach oben / unten blättern Verschiebung-k und Verschiebung-j (wenn Sie bereits im Scroll-Modus sind). Nicht verschoben bewegt sich der Cursor anstelle der Seite.

Auszüge aus dem Man Seite:

tmux kann von einem angeschlossenen Client aus gesteuert werden, indem standardmäßig eine Tastenkombination aus einem Präfix-Schlüssel "C-b" (Ctrl-b) gefolgt von einer Befehlstaste verwendet wird.

 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

Plus ein Haufen mehr. Beachten Sie, dass Sie drücken müssen C-b zweimal, wenn Sie das für die Seite seit verwenden C-b ist als Befehlsschlüssel gebunden. Informationen zum Voranstellen eines Befehls für den Kopiermodus mit einer Wiederholungszahl finden Sie auf der Manpage.

Sie können den Tastenbindungsmodus mit einstellen Strg-b, dann

:set-window-option mode-keys emacs

oder vi.


1293
2017-11-11 03:02



Ich denke C-b = ist choose-buffer standardmäßig. Hast du gemeint C-b [ (welches ist copy-mode standardmäßig)? Sie können auch verwenden C-b PageUp Um den Kopiermodus direkt auf der vorherigen Seite zu starten (sehr praktisch, wenn Sie wissen, was Sie anzeigen möchten, wurde bereits von der aktuellen Seite gescrollt). - Chris Johnsen
Richtig, mein tmux hat keinen Scroll-Modus. Du brauchst C-b [ Wechseln Sie in den Kopiermodus und verwenden Sie dann entweder die Emacs- oder die VI-Tastenbelegung zum Scrollen. Dies scheint eine Menge Schritte zu sein, nur um zu scrollen, aber die Vorteile von tmux überwiegen immer noch diese Belästigungen. Ich bin auf einem Macbook und es gibt keinen PageUp-Schlüssel: - \. (Wie mache ich auch Schlüssel mit Markdown wie Sie, Dennis?) - chadoh
@ Chadoh: Versuche diese auf deinem Macbook: Home: fn-LeftArrow; Ende: Fn-RightArrow; Bild hoch: fn-UpArrow; Bild ab: fn-DownArrow. Um Tastenkappen zu machen: <kbd>Ctrl</kbd> - Dennis Williamson
Auf Macbook geht das Fn + up direkt zur Terminal App und trifft nie auf tmux - Tyler
Wenn Sie sich im Scroll-Modus befinden, können Sie auf einem Macbook mit fn + Shift + LeftArrow eine Seite nach oben scrollen. - Nick Hammond


Nun, Sie sollten den richtigen Weg zum Scrollen betrachten: füge deine hinzu tmux.conf

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

oder

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

Es funktionierte für mich in Fenstern und Fenstern. Jetzt ist tmux einfach perfekt.

Praktisches tmux hat mehr Informationen über tmux.conf Dateien.


237
2017-11-25 13:05



Wenn ich das mache, verursachen Mausklicks und Scrolls, dass Kauderwelsch-Zeichen in den Eingabeaufforderungsbereich des Terminals gedruckt werden, das ich mit tmux verwende. Irgendwelche Ideen? - ely
Zukünftige Benutzer der tmux-Maus: Um zu verhindern, dass Sie vor dem Tippen erneut nach unten scrollen müssen, können Sie drücken q um den Bildlaufmodus zu verlassen. - Jezen Thomas
Mouse Scrolling funktioniert gut, aber leider kann ich mit der Maus keinen Text mehr auswählen. Mit Tilda und tmux. - friederbluemle
Beachten Sie, dass dies in tmux 2.1 und höher durch ersetzt wird set -g mouse onund der Bildlaufmodus wechselt nicht automatisch in den Kopiermodus wie zuvor. - thrnio
Wichtiger Hinweis: Diese Einstellung unterbricht das Hervorheben und Kopieren von Text. Verwenden Sie Shift + Klick, um diese Funktionalität beizubehalten. - Shadoninja


Aus meiner .tmux.conf:

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

Dies aktiviert das native Xterm-Scrollen.


125
2017-08-22 20:49



Kannst du erklären, was das genau macht? - Ivo
Ich weiß nicht, was es tut, aber es ist ein reines Genie. Schließlich funktioniert tmux scrolling, yay! - oneself
Unter OS X funktioniert das nicht. - Nick
Lösung: gist.github.com/1297707 - Nick
Überprüfen Sie dies, wenn Sie über Togdon's Antwort verwirrt sind: superuser.com/questions/310251/ ...   IMO, wenn Sie nur ein einziges Fenster haben, funktioniert diese Lösung besser als die angenommene Antwort. - thameera


Für das neueste tmux 2.1, um mit der Maus vernünftig zu scrollen, ist dies die richtige Antwort:

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'"

es reicht nicht aus, einfach Ihre .tmux.conf neu zu laden, die Sie benötigen, um Ihren tmux neu zu starten, z. tmux kill-server && tmux

genommen von https://github.com/tmux/tmux/issues/145


39
2017-12-01 16:09



Wie ist das nicht die akzeptierte Antwort? - Marcel
der Hinweis in dieser Antwort über "nicht genug, um .tmux.conf neu zu laden, half" und das Beenden aller tmux-Sitzungen für mich (vielleicht würde Kill-Server funktionieren) geholfen! - Colin D
Könnten Sie näher erläutern, wie das funktioniert? - oligofren
Es scheint, Mausereignisse weiterzuleiten, wenn die Maus geklickt / gescrollt wird usw. Wenn sich der Bereich in einem indirekten / gepufferten Zustand (nur Kopiermodus?) befindet und die Maus eine Taste drückt, scrollt usw. Der letzte Abschnitt umfasst das Scrollen im Direktmodus, indem zuerst in den indirekten Modus gewechselt wird. Wenn nicht für diese Steuerelemente, könnte das Terminal die Ereignisse als History-Scrolling interpretieren, wenn überhaupt. Nachdem ich das gesagt habe, weiß ich nicht, ob ich jemals meinen Pager und Vim gleichzeitig scrollen konnte, und ich habe einige der Snippets ausprobiert. - John P


In meinem Fall nur opt + Aufwärtspfeil und opt + DownArrow auf OSX.


12
2018-04-17 03:43



@fixer1234 Die Frage erwähnt Linux überhaupt nicht. tmux kann auch unter OS X verwendet werden. - slhck
@slhck: Danke. Zu verschlafen; Astigmatismus trat ein. Ich hatte das tmux-Tag als Linux-Tag falsch gelesen. - fixer1234


So habe ich es zum Laufen gebracht, und die Gründe, warum ich es für besser halte als den Standardweg.

Um es auszuprobieren, fügen Sie alle Code-Abschnitte ein ~/.tmux.conf.

Schritt 1. Ändern Sie den Präfix-Schlüssel, so dass Sie kein Bit mehr erreichen müssen. "B" ist scheinbar ein enger Schlüssel, liegt aber in der Mitte der beiden Zeigefinger (bei 'F' und 'J'). Da diese Abkürzung in tmux essentiell ist, ist C-j viel besser, da es keine Handbewegung benötigt (abgesehen vom Drücken der Taste).

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

Schritt 2. 'S' (um in den Kopiermodus zu gelangen) ist: 1) Schließen (gleicher Grund wie oben), 2) involviert die andere Hand (vergleiche: 1-2 im Boxen, oder die ls Befehl, um Dateien in einem Verzeichnis anzuzeigen), und 3) könnte als mnemonic für "scroll" gedacht werden (obwohl der Kopiermodus nicht nur Scrolling ist).

bind s copy-mode

Schritt 3. Der letzte Teil, das eigentliche Scrollen. 'P' und 'N' sind den Emacs-Benutzern zu diesem Zweck bekannt. Sie sind nah, intuitiv ("P" ist über "N" auf der Tastatur) und mnemonisch ("vorheriger" und "nächster"). Wenn Sie nur in Emacs scrollen und dann zu tmux gehen, ist es sinnvoll, diese Verknüpfungen zu verwenden.

Ich fand jedoch, dass "Ich" und "K" noch besser sind - sie sind sogar näher als "P" und "N" und intuitiv (aus dem gleichen Grund); Was Mnemotechniken betrifft - da das Scrollen so üblich ist, werden Mnemotechniken nicht wirklich wichtig sein, da die Shortcuts bald Ihr Gehirn umgehen und in das Muskelgedächtnis eindringen werden.

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





Ich habe dafür viel gesucht und die beste Lösung für mich funktioniert wie in dieser ausführlichen Anleitung erwähnt: http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/

Fügen Sie diese Bindungen in ~ / .tmux.conf hinzu:

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

Wenn der obige Ansatz implementiert ist, können Sie auch von Fenstern in einem Fenster kopieren Zoomen in jedes Fenster zuerst mit Präfix  +.

Ein wichtiges Detail, das beim Mausmodus fehlte, ist zu drücken Verschiebung bevor Sie einen zu kopierenden Bereich auswählen. Dies kopiert es in den traditionellen Terminal-Puffer anstelle des tmux-Kopierpuffers. (https://wiki.archlinux.org/index.php/Tmux#Scrolling_issues)


6
2018-03-31 00:42



Schätze deine Antwort. Aber oft können die verlinkten Links brechen. Es wäre immer vorteilhaft, den Kernteil Ihrer Antwort hier hinzuzufügen und den Link nur als Referenz zur Verfügung zu stellen. - Prasanna


Ich würde empfehlen, einen Versuch zu machen tmux-besser-Maus-Modus Plugin, um die meisten Probleme mit tmux-Maus zu lösen.

Es ist kompatibel mit Tmux 2.1 und dem neuen set-option -g mouse on Ansatz.


4
2017-12-07 16:34



Danke, das ist die beste Lösung für mich. Es umfasst alle meine Mausrad-Bindungen, die ich manuell hinzugefügt habe (also brauche ich sie nicht mehr), und es gibt zwei Killer-Features, die ich sehr gerne hatte: scroll-without-changing-pane in Kombination mit scroll-without-changing-pane und emulate-scroll-for-no-mouse-alternate-buffer. Jetzt ist meine TMUX-Erfahrung viel besser. - selurvedu


Das Einzige, was für mich funktioniert, ist Folgendes zu tun: ~/.tmux.conf

# Allow xterm titles in terminal window, terminal scrolling with scrollbar, and setting overrides of C-Up, C-Down, C-Left, C-Right
set -g terminal-overrides "xterm*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

(Sie müssen möglicherweise neu starten, damit dies wirksam wird)

Aktualisieren:

Ich habe festgestellt, dass diese Lösung nicht mehr funktioniert, wenn Sie die Einstellung in Putty Connection> Data> Terminal-type auf "putty" (um einige Formatierungsprobleme zu beheben) von "xterm" ändern.

Update 2:

Verwenden Sie diese Option, wenn Sie "Kitt" als Terminaltyp verwenden möchten: set -g terminal-overrides "putty*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"


4
2017-10-28 10:59



Dieser löst mein Scroll-Problem auch in der iPhone App. - NathaneilCapital
Das letzte, was ich versuchte, funktionierte nicht mehr, aber das funktionierte. Seltsam. set -ga terminal-overrides ',xterm*:smcup@:rmcup@' - phocks


Das hat für mich funktioniert:

vim ~/.tmux.conf
set -g mode-mouse on      ###Insert this setting with vim, then source the file.
tmux source-file ~/.tmux.conf

1
2018-01-04 20:22





  • Strg + EIN - um mit dem Scrollen zu beginnen
  • Strg + C - aufhören zu scrollen

-3
2017-10-26 07:55



Dieser Beitrag ist zu kurz, um die Frage sinnvoll beantworten zu können. Es fügt den bereits gegebenen Antworten nur sehr wenig neue Informationen hinzu; es sagt nichts darüber aus Wie scrollen (nur wie man den Kopiermodus wechselt). Die Standardkombination für das Befehlspräfix lautet ebenfalls Ctrl-B (Ctrl-Aist der Standard für den GNU-Bildschirm). - Anthony Geoghegan
Nicht sicher, ob der Autor dieser Antwort die Frage überhaupt verstanden hat. Es ist nicht hilfreich und einfach falsch. - Vik
Ich habe gesucht, wie man so lange mit dem Scrollen aufhören kann, danke, dass du es aufgezeigt hast! - PERR0_HUNTER