Vim läuft nicht in tmux

14

Wenn ich versuche , eine Datei mit öffnen viminnerhalb tmuxdes gesamten Fenster friert ein . Ich muss das Fenster mit töten C-a &.

Hier sind meine ~/.vimrcEinstellungen:

:set autoindent
:set ts=4
:set number
:set shiftwidth=4
:set showmode
:filetype on
:filetype plugin on
:syntax enable
:set mouse=a

und ~/.tmux.conf

# I like Ctrl-a as the default hotkey
unbind C-b
set-option -g prefix C-a

# Split window using | and -
unbind %
bind | split-window -h
bind - split-window -v

# Set status bar
set -g status-bg black
set -g status-fg white
set -g status-left ‘#[fg=green]#H’

# Highlight active window
set-window-option -g window-status-current-bg red

# Makes window numbering start from 1, instead of 0
set -g base-index 1

Ich stehe vor dem Problem in RHEL. Allerdings funktioniert die gleiche Konfiguration auch auf meinem Mac. Ich denke, die Dinge funktionierten gut, bis meine RHEL-Box neu gestartet wurde und ich versuchte, eine Datei aus der vi-Auslagerungsdatei wiederherzustellen.

Irgendwelche Ideen, wie man das behebt?

[edit]: Ich habe versucht sshin eine andere Box zu tmuxlaufen und vidort. Funktioniert gut in Remote-Box!


[später hinzugefügt] Auf Vorschlag von @jasonwryan habe ich die Zeile set -g default-terminal screen-256coloram Ende von hinzugefügt tmux.conf. Das hat verhindert, dass Programme wie lessfunktionieren.

echo $TERM inside tmux ist "screen" und outside tmux ist "xterm".

Die Suche nach $ TERM führte mich zu https://wiki.archlinux.org/index.php/Tmux , von wo aus ich die Zeile set -g default-terminal "screen-256color"als erste Zeile von hinzufügte tmux.conf. Dies machte den $TERMinneren tmux zu "screen-256color". Aber jetzt, wenn ich viin tmux starte, wird der folgende Fehler angezeigt:

E558: Terminal entry not found in terminfo
'screen-256color' not known. Available builtin terminals are:
    builtin_riscos
    builtin_amiga
    builtin_beos-ansi
    builtin_ansi
    builtin_pcansi
    builtin_win32
    builtin_vt320
    builtin_vt52
    builtin_xterm
    builtin_iris-ansi
    builtin_debug
    builtin_dumb
defaulting to 'ansi'

Sieht so aus, als hätte ich das Problem gelöst. Gerade set -g default-terminal xtermals erste Zeile meiner ~ / .tmux.conf hinzugefügt und es hat funktioniert!

BiGYaN
quelle
1
Es mag nicht verwandt sein, aber Sie sollten das richtige TERM in tmux mitset -g default-terminal screen-256color
jasonwryan
3
Können Sie Ihre Frage mit Ihrem $ TERM in und außerhalb von tmux aktualisieren?
Jasonwryan
1
Führen Sie außerhalb von tmux 'echo $ TERM' aus. Führen Sie in einer tmux-Sitzung 'echo $ TERM' aus.
George M
1
Du solltest dein tmux TERM nur auf eine Bildschirmableitung setzen: siehe FAQ : sonst wirst du Probleme haben ...
jasonwryan
1
Sie sollten Ihre eigene Antwort schreiben und diese veröffentlichen und dann akzeptieren (dies ist durchaus akzeptabel).
EightBitTony

Antworten:

10

Ich habe das Problem durch Hinzufügen der Zeile gelöst

set -g default-terminal xterm

als erste zeile meiner ~ / .tmux.conf und es hat gut funktioniert.

Wie @jasonwryan jedoch betont hat, heißt es in den TMUX-FAQ eindeutig:

Die meisten Anzeigeprobleme sind auf einen falschen TERM zurückzuführen! Stellen Sie vor dem Melden von Problemen sicher, dass die TERM-Einstellungen innerhalb und außerhalb von tmux korrekt sind.

In tmux muss TERM "screen" oder ähnlich sein (z. B. "screen-256color"). Draußen muss es zu Ihrem Terminal passen ...

Ich poste diese Antwort nur, da sie mein Problem tatsächlich gelöst hat. Fühlen Sie sich bitte frei, um Ihre alternativen Lösungen hinzuzufügen.

BiGYaN
quelle
2

Ich hatte gerade das gleiche Problem mit einer alten CentOS-Box, an der ich arbeiten musste. Für mich führte das Setzen von TERM in tmux auf xterm dazu, dass andere seltsame Probleme auftauchten. Ich konnte es jedoch durch Auskommentieren behebenset mouse=a Problem Auskommentieren in meiner .vimrc-Datei ( https://lists.gnu.org/archive/html/screen-users/2005-04/msg00039.html)

Anscheinend set ttymouse=xterm2kann auch das Hinzufügen von .vimrc den Trick tun.

Für alle anderen, die auf ähnliche Probleme stoßen, empfehle ich, die .vimrc-Datei vorübergehend zu verschieben, um festzustellen, ob die Ursache darin liegt.

Ben
quelle