Problem bei der Verwendung von Strg + Pfeiltasten in Vim bei Verwendung von Byobu mit tmux

11

In Vim hatte ich Strg + Pfeiltasten eingestellt, um Wörter zu überspringen. Dies funktioniert einwandfrei, wenn Vim im Gnome-Terminal ausgeführt wird.

Bei Verwendung von byobu (tmux) zeigt sich jedoch ein seltsames Verhalten: Es löscht alles nach dem Cursor.

Als Referenz sind dies meine vim-Einstellungen:

:inoremap <C-Left> <C-\><C-O>b
:inoremap <C-Right> <C-\><C-O>w
Shivams
quelle

Antworten:

6

Das Problem ist zweifach. Zuerst wird tmuxstandardmäßig wandelt die Steuerpfeiltasten aus einer Art von Escape - Sequenz zu einem anderen. So werden spezielle Schlüssel, wie controlleftsie vimohne den Modifikator gesendet werden, z left. Wenn Sie cat -vdie verschiedenen Escape-Sequenzen anzeigen, wird möglicherweise Folgendes angezeigt

^[OD

im Vergleich dazu (außerhalb von tmux):

^[[1;5D

Die Linie

set-window-option -g xterm-keys on

behebt diesen Aspekt. Der andere Teil ist, dass tmuxstandardmäßig die Terminalbeschreibung für verwendet wird screen. Das Terminal Beschreibung nicht beschreiben die Steuer-Pfeiltasten. Diese Einträge aus der Terminaldatenbank sind für VTE (Gnome-Terminal) am besten geeignet:

Es gibt andere, wie z

die automatisch ausgewählt werden würde , wenn in läuft , screenwenn die entsprechende TERMAußenseite war vte, vte-256coloretc. tmuxnicht tut diese automatische Auswahl-; Sie müssen die Konfigurationsdatei ändern.

Übrigens gibt es keinen "screen.xterm" -Eintrag, da dies einige Verwendungen von stören würde screen. Es gibt keinen Konflikt mit TERM=xterm-new.

Wenn Sie eine Standard-Terminaldatenbank (minimal) wie ncurses-basein Debian haben, haben Sie diese möglicherweise nicht. Häufiger wäre xterm-256color, was nah genug ist, um mit vim und tmux verwendet zu werden.

Wenn ich dies beispielsweise zu meiner .tmux.confDatei hinzufüge , verhält es sich wie erwartet in vim:

set -g default-terminal "xterm-256color"

Weiterführende Literatur:

Thomas Dickey
quelle
Hmmm ... das funktioniert :) Aber nur teilweise. Nur Control+ Leftfunktioniert; Control+ Rightist nicht. Ich werde später testen und aktualisieren.
Shivams
Möglicherweise haben Sie eine andere Bindung, die die Kontrolle + das Recht beeinträchtigt (angesichts der Einzelheiten kann ich Ihnen Ratschläge geben).
Thomas Dickey
Vielen Dank für das Angebot :) Ich habe ein wenig nachgeforscht und festgestellt, dass tatsächlich einige andere Tastenkombinationen Störungen verursachen. Auf meinem Mac funktioniert dies beispielsweise einwandfrei, während dies unter Linux (mit Guake) nicht der Fall ist. Ich bin jedoch außerhalb der Station und kann nicht auf mein Linux zugreifen. Ich werde aktualisieren, wenn ich das Problem behebe.
Shivams
@Thomam Dickey: In der Zwischenzeit akzeptiere ich Ihre Antwort, da sie das Problem tatsächlich löst.
Shivams
2

Von hier aus können Sie die Tastenkombination in byobu lösen:

Erstellen Sie eine Datei ~/.byobu/.tmux.confmit (oder fügen Sie hinzu, wenn die Datei vorhanden ist):

set-window-option -g xterm-keys on

Fügen Sie dann Folgendes hinzu ~/.byobu/keybindings.tmux:

unbind-key -n C-Left
unbind-key -n C-Right
user1794469
quelle
Das funktioniert nicht. Es hat mir jedoch eine solide Führung gegeben. Ich werde versuchen, dem Beispiel zu folgen und eine Lösung zu finden. Danke :)
Shivams