
Ähnlich wie bei den Modi von Vim möchte ich, dass Tmux im Präfixmodus (wie nennt man das eigentlich?) bleibt, bis ich die Escape-Taste drücke, damit ich etwas tun kann wie
Prefix h j + +
anstatt
Prefix h Prefix j Prefix + Prefix +
und Sie müssen sich keine Gedanken über Timer oder übermäßiges Akkordspiel machen.
Antwort1
Ich habe dies gepostet alsAusgabeund erhielt diese Antwort:
Sie könnten alle Ihre Tasten neu binden, um sie
switch-client -Tprefix
am Ende jeder Befehlssequenz hinzuzufügen, es gibt hierfür jedoch keine automatisierte Möglichkeit.
Das Problem hierbei ist, dass es nicht funktioniert, wenn der Befehl einen Fehler ausgibt. Sie können das Problem jedoch umgehen, indem Sie
Ja, ein Fehler bricht die Befehlssequenz ab. Sie können dies umgehen, indem Sie beispielsweise run-shell verwenden.
run "tmux mycmd; tmux switch-client -Tprefix"
Dadurch wird der Fehler möglicherweise nicht angezeigt.
Meine aktuelle Konfiguration sieht folgendermaßen aus:
bind c new-window \; switch-client -T prefix
bind . command-prompt \; switch-client -T prefix
bind , copy-mode \; switch-client -T prefix
# Vim style splits
bind s split-window -v \; switch-client -T prefix
bind v split-window -h \; switch-client -T prefix
# Double tab to cycle panes
bind C-a select-pane -t :.+ \; switch-client -T prefix
Soweit ich weiß, verwendet tmux für verschiedene Bindungen unterschiedliche Kontexte. Um anzugeben, in welchem Kontext eine Bindung verwendet werden soll, verwenden Sie bind <key> -T <context>
, wobei das Präfix der Standard ist. Sie können den Kontext mit wechseln switch-client -T <context>
, daher wenden wir das Präfix nach jedem Befehl erneut an.
Die Nachteile dieser Methode sind:
- Sie müssen es bei jeder Bindung explizit tun
- Wenn ein Fehler auftritt (z. B. beim Versuch, zur nächsten Sitzung zu wechseln, wenn nur eine Sitzung ausgeführt wird), wird in den Normalmodus zurückgekehrt.
- Es wird bei jeder nicht gebundenen Taste beendet, nicht nur bei Esc.
Bonus!Sie können einen Funky-Indikator hinzufügen, der sehr hilfreich ist, wenn Sie längere Zeit im Präfixmodus bleiben, indem Sie etwas wie
set -g status-right "#{?client_prefix,#[reverse]● #[noreverse],#[reverse]○ #[noreverse]}"