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!


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.


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.