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.
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.
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 :)
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"
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.
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.
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
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.
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:
xterm-256color
)xterm-256color
zu .vimrc
)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.
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
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"
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
.
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
Um die richtige Farbe einzustellen und das Rendering-Problem in Ubuntu und Mac zu beseitigen:
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
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.
Ich habe die Zeile set termguicolors
entfernt, aber es funktioniert nicht . Die Einstellung set notermguicolors
stattdessen in .vimrc
funktioniert.
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.