Bindetasten zum Blättern von Seiten im Kopiermodus in tmux

6

Ich möchte in der Lage sein, Emacs-Tasten (wie C-v/ M-v) für das Scrollen in tmux anstelle von default PgUp/ zuzuordnen. Ist PgDowndas möglich? Kann das im Moment nicht aus dem Handbuch ersehen (entschuldigt, wenn es da ist, scheint es so natürlich zu sein, wenn man den Rest der Emacs-ähnlichen Navigationstasten-Bindungen bedenkt, die tmux verwendet)

Evgeniy Dolzhenko
quelle
Schauen Sie sich das an .
Emanuel Berg

Antworten:

10

Standardmäßig sind in der emacs-copySchlüsselbindungstabelle sowohl Cv, Page Down ( NPage) und Space page-downals auch Mv und Page Up ( PPage) gebunden page-up.

Sie können Ihre Bindungen mit überprüfen tmux list-keys -t emacs-copy | grep -i page.

Wenn diese Bindungen fehlen, können Sie sie von Hand wiederherstellen (z. B. in Ihrem ~/.tmux.conf):

bind-key -t emacs-copy C-v page-down
bind-key -t emacs-copy M-v page-up

Da dies jedoch die Standardeinstellung ist, müssen Sie nachverfolgen, wo sie geändert / entfernt werden, bevor Sie wissen, wo die obigen Befehle abgelegt werden müssen, damit sie wirksam werden (sie müssen nach allen anderen Änderungen an den Bindungen eingefügt werden).

Sind Sie sicher, dass Ihre mode-keysOption auf eingestellt ist emacs? Es tut standardmäßig emacs, aber tmux setzt sie auf vi(zusammen mit status-keys) , wenn Sie die VISUAL Umgebungsvariable Set und hat seinen Wert vidarin , oder wenn Sie nicht über VISUAL Satz aber Editor eingestellt haben und hat seinen Wert vidarin .

Sie können Ihren globalen mode-keysWert mit überprüfen tmux show-options -g -w | grep mode-keys. Möglicherweise haben Sie auch einen mode-keysWert pro Fenster (lassen Sie das -gKontrollkästchen aus, um den Wert zu überprüfen; verwenden Sie es möglicherweise, -tum ein anderes Fenster als Ziel festzulegen, wenn Sie den Befehl nicht im Fenster selbst ausführen können).

Wenn Sie die automatische Erkennung überschreiben und immer die emacsBindungstabellen verwenden möchten, können Sie diese Zeilen in Folgendes einfügen ~/.tmux.conf:

set-option -g status-keys emacs
set-option -gw mode-keys emacs

Der viTest „ Hat etwas drin“ ähnelt eher dem Test „ viTritt nach dem Letzten auf /(oder irgendwo, wenn /der Wert nicht vorhanden ist)“. Dies bedeutet , dass ein Wert wie /opt/vital/bin/emacsnicht zählen wird vi(trotz der viin vital).

Chris Johnsen
quelle
Es klingt wie Sie dies tun wollen: bind-key M-v copy-mode -u. Dann können Sie zwei Tastenanschläge («Präfix» «Mv») eingeben, um copy-modeeine Seite weiter zu blättern. Schauen Sie sich die (nicht-Tabelle) Bindungen für PPage: tmux list-keys | grep -F page. Es gibt jedoch keine Bindung dafür NPage(es macht keinen Sinn, in der Geschichte „unterzugehen“, weil Sie immer am Ende der Geschichte sind, es sei denn, Sie sind bereits copy-modedabei). Ebenso kann es keine sinnvolle Bindung für Cv
Chris Johnsen
Es funktionierte! Nochmals vielen Dank! Natürlich macht es Sinn, keine "Daunen" -Bindungen zu haben
Evgeniy Dolzhenko