tmux vim colorscheme background wird nicht angezeigt


12

Ich habe tmux installiert, aber jetzt füllt der Textmodus vim Farbschema die Hintergrundfarbe nicht richtig aus. So sieht es mit dem Farbschema xoria256 im normalen Ubuntu 14.10-Terminal aus:

Bildbeschreibung hier eingeben

Und hier, wenn ich es in genau demselben Terminal nach tmux laufen lasse:

Bildbeschreibung hier eingeben

Wie Sie sehen können, wird der Desktop überall dort angezeigt, wo sich kein Text in vim befindet. Ich habe ein 256-Farben-Terminal.

Meine .tmux.conf:

~ cat .tmux.conf
set -g mode-mouse on
set -g default-terminal "screen-256color"

und ich habe ein 256-Farben-Terminal:

~ tput colors
256

Wie bringe ich tmux dazu, ordnungsgemäß mit vim 256-Farben-Farbschemata zu arbeiten, die im normalen Terminal einwandfrei funktionieren?


Nach meiner Erfahrung verhält sich tmux seltsam, wenn es im Inneren gestartet wird gnome-terminal. Versuchen Sie, tmux mit zu starten und prüfen TERM=xterm tmuxSie, ob es sich anders verhält. Wenn xtermnicht, versuchen Sie xterm-256coloroder xterm-color.
JW013,

@ jw03 Leider hat keine dieser Optionen funktioniert, um das Problem zu beheben. Identisches Verhalten. Gleiches Verhalten , wenn ich laufe tmux innerhalb Terminator
Thomas Browne

1
Was ist in einer Shell in tmux der Wert von $TERM? Wenn es nicht ist screen-256color, versuchen Sie starten vimwie TERM=screen-256color vim, dann stellen Sie sicher , dass kein Startskript - Sets TERM(oder, wenn Sie tun müssen , dass rund um fehlerhafte Software zu arbeiten, stellen Sie sicher , überprüft er den ursprünglichen Wert zuerst).
Ry

@minitech: Bingo. Ich hatte xterm-256color, während screen-256color das Problem behebt. Wenn Sie dies beantworten, werde ich es akzeptieren.
Thomas Browne

Dies funktionierte für mich: stackoverflow.com/a/15095377/96855
Olivier Lalonde

Antworten:


5

Dies geschieht, wenn in der Umgebung von Vim TERMnicht die richtige Einstellung festgelegt ist screen[-256color], normalerweise durch ein Shell-Startskript. Wenn dies der Fall ist, haben Sie zum Beispiel eine

TERM=xterm-256color

, entweder entfernen oder überprüfen Sie den ursprünglichen Wert, TERMbevor Sie ihn ändern, z

if [[ $TERM == xterm ]]; then
    TERM=xterm-256color
fi


2

Später Kommentar, aber ich hatte alle Threads durchgesehen und konnte ihn nicht lösen, bis ich Folgendes tat. Alles was ich tun musste, war einen zweiten Check von

if [[ $TERM == screen]]; then
    TERM=screen-256color
fi

zusätzlich zu der ersten bedingten Anweisung in meiner .bashrcDatei:

if [[ $TERM == xterm ]]; then
    TERM=xterm-256color
fi

Ich hatte das auch in .tmux.conf:

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

In meiner .vimrcDatei:

set term=screen-256color
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.