Fehler in vim beim Ausführen in tmux

9

Ich habe mit tmux gespielt und ich liebe es. Es gibt jedoch ein ärgerliches Problem, wenn vim darin ausgeführt wird.

Irgendwie werden die Pfeiltasten neu zugeordnet, aber nur zu bestimmten Zeiten, wie beim Starten von Command-T, wenn ich versuche, durch die Dateiliste zu scrollen, wird der Befehl abgebrochen und ich werde in den Einfügemodus versetzt, abhängig von der Pfeiltaste Ich habe gedrückt, ein A, B, C oder D wird eingefügt.

Wenn ich zum Beispiel die Pfeile verwende, um mich durch einen Puffer zu bewegen, funktionieren sie ordnungsgemäß.

Irgendwelche Ideen?

Vielen Dank!

Ivan
quelle
1
Was ist $TERMdraußen tmux? Was ist mit drinnen? Es hört sich so an, als ob mit der Anwendung und den normalen Tastaturmodi etwas los ist.
Bis auf weiteres angehalten.
Außerhalb von tmux: xterm, innerhalb: screen ... Wenn ich also laufe, TERM=screen vimsehe ich das gleiche Verhalten, also muss ich den Bildschirm reparieren?
Ivan

Antworten:

13

Ich habe einfach set -g default-terminal "xterm"zu meiner .tmux.conf hinzugefügt

Dadurch hat tmux xterm anstelle von screen verwendet, sodass das Leben schön ist und ich mir keine Sorgen machen muss, ob ich auf Tastenkombinationen stampfe.

Zee
quelle
5
Besser so set -g default-terminal "xterm-256color". Ansonsten konnte ich im visuellen Modus aufgrund begrenzter Farben nichts bemerken.
Macario
1
Ich musste das mit kombinieren set -g xterm-keys on.
Dan Stahlke
4
Es ist erwähnenswert, dass die Manpage für tmux sagt, niemals zu setzen default-terminal. Ich bin mir nicht sicher, was die Konsequenzen sind.
Dan Stahlke
1
Angesichts der Warnung, default-terminaldie nicht gesetzt werden sollte, gibt es vielleicht eine bessere Lösung von der vim-Seite: link .
Dan Stahlke
Funktioniert in meinem Fall nicht ...
Blaszard
6

Schließlich fand ich hier meine Antwort: Wenn Sie den Bildschirm unter OSX ausführen, bringt Befehl + r die Pfeiltasten in vim auf allen Bildschirmen durcheinander

Das Seltsame ist, dass ich meiner .vimrc-Datei nur EIN Mapping hinzugefügt habe:

map <Esc>[B <Down>

Aber diese einzige Zuordnung lässt ALLE Pfeiltasten richtig funktionieren ...

Ivan
quelle
Irgendwie ... war dies die einzige Lösung, die für mich auf Centos 6.3
Patryk
Das macht für mich absolut keinen Sinn, aber das Hinzufügen einer einzelnen Zuordnung scheint auch alle Schlüssel für mich zu reparieren. Noch seltsamer (zumindest für mich), dass die direkte Zuordnung für den Tastendruck im Einfügemodus dies nicht behebt ( map ^[A <Up>funktioniert durch Drücken von Strg + V <Up> und Löschen des O, map ^[OA <Up>durch Drücken von Strg + V <Up> und Verlassen des O nicht 't). Ich verstehe es nicht ... aber was auch immer. Meine Schlüssel funktionieren jetzt. Vielen Dank.
ND Geek
1

Nur für den Fall, dass jemand sauer auf diese Lösungen wird, die nicht funktionieren.

Stellen Sie sicher, dass Sie das Plugin tmux + vim + AutoClose vim nicht verwenden. Autoclose ordnet etwas zu, das dazu führt, dass ABCD-Zeichen in die vorherige Zeile eingefügt werden!

Ich habe gerade das Plugin gelöscht und es funktioniert jetzt in Ordnung

txomon
quelle
Vielen Dank! Das war es für mich. Ich habe stattdessen dieses Autoclose-Plugin verwendet. Es bietet ähnliche Funktionen.
ollpu
0

Command-T macht etwas Dummes durch Mapping, wenn es in einem Terminal ausgeführt wird. Das Mapping wird übersprungen, wenn $ TERM vt100 * oder xterm * ist, aber das ist keine gute Lösung.

greywh
quelle
0

Wer den Cursor im Befehlszeilenmodus bewegen möchte, sollte sich diesen Blog-Beitrag ansehen . Am Ende habe ich acht Zeilen in mein vimrc eingefügt.

" Needed for tmux and vim to play nice
" Needed for tmux and vim to play nice
map <Esc>[A <Up>
map <Esc>[B <Down>
map <Esc>[C <Right>
map <Esc>[D <Left>

" Console movement
cmap <Esc>[A <Up>
cmap <Esc>[B <Down>
cmap <Esc>[C <Right>
cmap <Esc>[D <Left>
frbl
quelle