it-swarm.com.de

vim colorscheme im tmux-modus verlieren

Ich verwende iterm2 und wenn ich im Tmux-Modus bin, erscheint das in vim eingestellte Farbschema nicht. Nur das Farbschema habe ich in iterm eingestellt. Wenn ich vim von Shell aus laufe, erscheint das Farbschema korrekt - nur wenn ich im Tmux-Modus bin.

Ich habe versucht, :colorscheme molokai in vim einzustellen (siehe Abbildung unten) und ändert sich nicht - auch hier bleibt das Standard-Farbschema für iterm2 erhalten.

Fehlt mir eine Einstellung zu iterm oder tmux.conf? Meine Dotfles sind hier auf Github.

207
tristen

Ich hatte das gleiche Problem. Der einzige Unterschied war, dass ich solarize und nicht molokai verwende.

Um das Problem zu beheben, habe ich einen Alias ​​in ~/.bashrc eingerichtet:

alias tmux="TERM=screen-256color-bce tmux"

Und richten Sie die default-terminal-Option in ~/.tmux.conf ein:

set -g default-terminal "xterm"

Zuletzt $ source ~/.bashrc, um einen neuen Alias ​​zu laden.

235
Seyeong Jeong

Wie @romainl oben erwähnt hat, musste ich tmux zwingen, 256 Farben zu verwenden, indem Sie das Flag -2 hinzufügen:

$ tmux -2

Ich habe alias tmux='tmux -2' zu meinem bash_profile hinzugefügt, also vergesse ich nicht :)

68
tristen

Ich habe alle oben genannten Lösungen ausprobiert und was schließlich für mich funktioniert hat, enthält folgende Zeilen in .tmux.conf

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

Ich habe gerade entdeckt, warum ich viel Verwirrung hatte. Ich hatte, wie auch andere hier, Schwierigkeiten, die Default-Terminal-Einstellungen wirksam werden zu lassen. Ich erinnerte mich, dass ich im Hintergrund eine Tmux-Sitzung hatte. Ich habe meine Sitzung wieder angefügt, meine Prozesse geschlossen und ALLE tmux-Prozesse geschlossen. Beim nächsten Neustart von tmux wurde die Einstellung des Standardterminals in .tmux.conf wirksam. Ich weiß nicht, ob andere dies auch tun, aber ich empfehle, alle Tmux-Prozesse zu schließen, bevor Sie die .tmux.conf-Datei ändern.

Ich habe mein Setup so eingerichtet, dass es auf meinem lokalen Computer (OSX 10.9.5 mit iTerm2) funktioniert, ohne dass .bashrc oder .bash_profile geändert wurde. Alles, was ich tat, war, die Zeile set -g default-terminal "xterm-256color" zu ~/.tmux.conf hinzuzufügen und alle tmux-Prozesse neu zu starten.

Ich habe mein Remote-Setup (ssh auf Ubuntu 14.04) erhalten, um auf dieselbe Weise zu funktionieren, ohne dass .bashrc geändert wurde. Ich habe einfach set -g default-terminal "xterm-256color" zu ~/.tmux.conf auf meinem Remote-Rechner hinzugefügt und alle Remote-Tmux-Prozesse neu gestartet.

Sie können testen, was Vim sieht, indem Sie echo $TERM innerhalb einer tmux-Sitzung ausführen. Es sagte immer wieder screen als Wert, bis ich alle Tmux-Prozesse neu gestartet habe und an diesem Punkt xterm-256color wie erwartet reflektierte.

Hoffentlich hilft das.

26
Chev

Dies ist ein wenig auf der veralteten Seite, aber es ist vielleicht erwähnenswert, dass bei Verwendung des Bildschirms häufig die Tasten "Home" und "Ende" beschädigt werden. Verwenden 

export TERM="xterm-256color"

in sollte die Funktionalität dieser beibehalten und das Farbschema (oder die Stromleitung) funktionieren lassen.

19
Jpatrick

Ich brauchte vim, um mit tmux in terminal auf ubuntu und cygwin/mintty unter Windows korrekt anzuzeigen. Ich habe es geschafft, indem ich die Antworten so kombinierte.

In .bashrc:

alias tmux="tmux -2"

In .vimrc:

" use 256 colors in terminal
if !has("gui_running")
    set t_Co=256
    set term=screen-256color
endif

" fix cursor display in cygwin
if has("win32unix")
    let &t_ti.="\e[1 q"
    let &t_SI.="\e[5 q"
    let &t_EI.="\e[1 q"
    let &t_te.="\e[0 q"
endif

basierend auf Antworten auf diese Frage, diese Vim-Wiki-Seite und diese Blockcursor-Frage

13
Andrew Johnston

Ich habe alle obigen Anweisungen ausprobiert, und ich habe herausgefunden, dass das Wichtigste ist, dass ich die folgende Zeile explizit in meine .bashrc-Datei einfügen muss.

export TERM=screen-256color

Ich weiß nicht, warum der Alias ​​tmux = "TERM = screen-256color-bce tmux" nicht funktioniert Ich verwende Sierra 10.12.1.

10
Lion Lai

Falls jemand 24-Bit-Farbunterstützung benötigt:

Tmux unterstützt 24-Bit-Farben ab Version 2.2. Wenn Ihr Terminal 24-Bit-Farbe unterstützt, fügen Sie Ihr Terminal der Einstellung für das Überschreiben des Terminals hinzu. Zum Beispiel,

set -ga terminal-overrides ",xterm-256color:Tc"

Meine Umgebungscheckliste:

  • macOS Sierra 10.12.3
  • iTerm2 3.0.14 (Typ des Berichtterminals ist xterm-256color)
  • neovim 0.1.7 (Aktivieren Sie die 24-Bit-Farbe durch Hinzufügen von: xterm-256color zu .vimrc)
  • tmux 2.3 (Hinzufügen von set -ga terminal-overrides ",xterm-256color:Tc" zu .tmux.conf)

Nichts anderes muss ich in .bashrc oder .zshrc hinzufügen.

Hoffe das könnte helfen.

9
Yanzhe Chen

Da dies das erste Ergebnis bei Google ist und keiner der oben genannten Punkte geholfen hat, wollte ich dies posten, damit jemand es hilfreich findet

im .vimrc:

set background=dark
set t_Co=256

HTH

5
HK_

Das Hinzufügen der folgenden Zeile in .tmux.conf funktionierte für mich mit macOS Sierra 10.12.6,

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

4
Zack Zhu

Wenn Sie tmuxinator oder mux verwenden, müssen Sie diese in .bashrc oder .zshrc hinzufügen:

alias tmux='TERM=screen-256color tmux -2'
alias tmuxinator='TERM=screen-256color tmuxinator'
alias mux='TERM=screen-256color mux'

Diese zwingt zur Verwendung von 256-Farben-In-Terminals.

Dann funktionieren der Befehl tmux, tmuxinator und mux.

3
qingxp9

Wenn Sie sich in der gleichen Situation wie ich befinden, hat keines der oben genannten Probleme funktioniert. Versuchen Sie Folgendes:

im .tmux.conf:

set -g default-terminal "xterm"

in der bash config (vielleicht .bashrc oder .bash_profile):

alias tmux="tmux -2"

und dann laufen:

killall tmux

und starte dann tmux neu

2
eliasbagley

Um die richtige Farbe einzustellen und das Rendering-Problem in Ubuntu und Mac zu beseitigen: 

Überprüfen Sie dies

1
Munish

Fügen Sie auf der Manpage von tmux das Flag wie folgt hinzu:

tmux -2

Dieses -2-Flag zwingt tmux zur Ausführung im 256-Farben-Modus.

Das funktioniert für mich

1
RyanLiu

Ich hatte nicht viel Glück beim Versuch, eine andere TERM zu exportieren oder ein Default-Terminal in meinem .tmux.conf zu setzen.

Meine Lösung zum Fixieren von Vim-Farben in tmux bestand darin, diese Zeile zu .tmux.conf hinzuzufügen:

set -g terminal-overrides 'xterm:colors=88'

Ich bin mir nicht sicher, warum diese Überschreibung erforderlich war, da mein TERM=xterm und ich iTerm auf xterm gesetzt haben, aber es scheint zu funktionieren.

1
Patrick Lewis

Ich habe die Zeile set termguicolors entfernt, aber es funktioniert nicht . Die Einstellung set notermguicolors stattdessen in .vimrc funktioniert.

0
alextanhongpin

Ich musste mich nur mit diesem Problem befassen, und obwohl alle zuvor veröffentlichten Antworten hilfreich waren, konnten sie das Problem in meinem Fall nicht lösen.

Mein Problem wurde behoben durch: Entfernen der folgenden Zeile in meinem .vimrc:

set termguicolors

was mit einer anderen Anweisung sowieso redondant war. 

Jetzt mit der folgenden Zeile in früheren Antworten in meinem .tmux.conf:

export TERM="screen-256color"

alles ist schön und bunt.

0
Nitlev