Wie zu zwingen, emacs-Stil-status-Tasten in tmux?
Habe ich dieses problem mit tmux 1.8: ich einstellen will status-keys
option 'emacs', weil ich wirklich nicht die Eingabe der Befehle im vi-Modus. Aber die folgende Zeile hinzufügen .tmux.conf keine Auswirkung hat:
set -g status-keys emacs
Wenn tmux gestartet, tmux show-options -g | grep keys
sagt emacs
aber das tatsächliche Verhalten ist vi-Stil.
Die Wurzel des Problems ist die $EDITOR
variable, die es zu vim
in meinem Fall. Die Dokumentationen Staaten:
status-keys [vi | emacs]
Use vi or emacs-style key bindings in the status line,
for example at the command prompt. The default is emacs,
unless the VISUAL or EDITOR environment variables are set
and contain the string `vi'.
Scheinbar So, wenn die Umgebungs-variable ist "vim" es zwingt vi status-Tasten.
Gibt es eine Möglichkeit zum überschreiben dieses Verhaltens und die Aufforderung Verhalten emacs-Stil trotz der Umgebungsvariable? Ich kann natürlich hack, um dieses (wie starten tmux mit anderen env-Variablen und die Wiederherstellung des ursprünglichen später), aber ich hoffe, es ist eine saubere Lösung.
Dank!
- Für alle, die diesen thread gefunden, während Sie versuchen, herauszufinden, was
status-keys
tut, beachten Sie, dass diese option wurde entfernt in v2.5. (Wenn es nicht entfernt worden von Ihrem Mann-Seite.)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beide
status-key
undmode-keys
standardmäßigvi
wenn EDITOR enthältvi
, aber das ist nur ein default (während des Startvorgangs, bevor Sie die Konfiguration-Dateien verarbeitet werden). Einstellung diese Option in Ihre Konfiguration zu überschreiben, die EDITOR-basierte Standard.Sind Sie auch
mode-keys
(die steuert die Schlüssel-Karten verwendet incopy-mode
, und diechoose-…
Befehle)?mode-keys
da ich will, dass esvi
. Jedoch, im Gegensatz zustatus-keys
, wenn ich nichtmode-keys
zuemacs
bekomme ich die richtigen überschrieben emacs Verhalten. Es scheint, dass das Problem wirkt sich nur aufstatus-keys
.EDITOR=vim tmux -L fresh -f /tmp/t
wo/tmp/t
enthält nurset -g status-keys emacs
: die Globalestatus-keys
istemacs
, und ich bekomme Emacs-Stil-Bindungen in der Statuszeile; die Fenster-globalmode-keys
istvi
, und ich bekomme vi-Stil Bindungen incopy-mode
. Sind, dass Ihre Sitzung nicht über Ihren eigenen Wert fürstatus-keys
ist das überschreiben Ihrer globalen Wert? (Überprüfen Sie, dasstmux show-option | grep keys
gibt keine Ausgabe.)tmux
zuEDITOR= VISUAL= tmux
als workaround.Hatte ich dieses problem und ich denke, dass ich es herausgefunden. Bist du zufällig auch mit ZSH (Z-Shell)?
Ich fand diesen Beitrag , die sagt, dass die ZSH schaltet auch auf "vi-Modus", wenn Sie Ihren VISUELLEN und/oder EDITOR zu vi/vim. Also das problem hatte ich in tmux als tatsächlich sprudeln aus dem ZSH!
Kurz gesagt, stellen Sie sicher, dass Sie verwenden können, emacs-style-Tasten in der shell außerhalb von tmux. Wenn Sie mit der ZSH kann man hinzufügen
bindkey -e
zu.zshrc
zu setzen emacs-bindings. Dann in.tmux.conf
: