Vim zeigt in tmux falsche Farben an

Vim zeigt in tmux falsche Farben an

Ich habe Ubuntu 11.10 installiert. Dann habe ich das Solarized-Design für Gnome Terminal heruntergeladen. Vom Terminal aus sieht mein Vim gut aus: Das Plugin Vim-Powerline wird korrekt angezeigt und die Syntax wird mit den richtigen Farben hervorgehoben. Aber wenn ich tmux ausführe und dort Vim ausführe, verwendet die Syntaxhervorhebung nur eine Grundfarbe und Vim-Powerline zeigt keine Farben an. Ich habe mir die FAQ zu Vim-Powerline angesehen und die Lösung sollte diese Zeile in .tmux-config sein:

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

Aber es funktioniert nicht. Ich habe mir TERM angesehen und es gibt „xterm“ zurück, also habe ich Folgendes versucht:

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

Aber auch das hilft nichts.

Dies ist die einzige Zeile in .tmux.config. In .vimrc habe ich folgende Zeilen:

call pathogen#infect()
set nocompatible
set encoding=utf-8
set laststatus=2
let g:Powerline_symbols = 'fancy'
set t_Co=256
syntax enable
set background=dark
colorsheme solarized

Antwort1

Das Starten von tmux mit dem folgenden Flag behebt dieses Problem für mich:

tmux -2

von der tmux-Manpage:

-2 Erzwingt, dass tmux davon ausgeht, dass das Terminal 256 Farben unterstützt.

Antwort2

das hat bei mir funktioniert

In.tmux.conf

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

In.vimrc

set term=screen-256color

Entfernen Sie den alten Termwert für .vimrc. Glauben Sie mir, das wird funktionieren

Antwort3

Ich habe das gleiche Problem unter Ubuntu 10.04 LTS mit Byobu 5.17 und tmux 1.5 und der neuesten Solarized-Version aus dem GitHub-Repo.

Ich konnte dies teilweise beheben, indem ich $TERMin der .bashrcDatei Folgendes angegeben habe:

export TERM="xterm-256color"

Außerdem scheint beim Launchpad ein Fehler gemeldet worden zu sein, der aber noch nicht behoben ist: byobu zeigt Dircolors nicht richtig an

Antwort4

Der Terminaltyp sollte in ~/.tmux.conf auf screen-256color eingestellt werden. Dadurch wird tmux mitgeteilt, wie die Umgebungsvariable TERM eingestellt werden soll. Daher funktioniert es für die aktuelle Sitzung nicht. Starten Sie eine neue und testen Sie sie dann.

Wenn es immer noch nicht funktioniert, können Sie Vim wie folgt ausführen:

TERM=screen-256color vi

Dadurch wird die Umgebungsvariable nur für eine einmalige VI-Ausführung festgelegt.

Wenn Vim dadurch nicht alle Farben anzeigt, testen Sie, ob Ihr Terminal (ich bin nicht sicher, ob Sie nur mit einem Terminalemulator testen) so kompiliert ist, dass es die 256-Farben-Palette unterstützt – laden Sie das folgende Perl-Skript vom betreffenden Terminalemulator herunter und führen Sie es aus.

http://scie.nti.st/dist/256colors2.pl

PS. Ich gehe davon aus, dass Sie den Tippfehler, den jordanbrock bemerkt hat, bereits korrigiert haben.

verwandte Informationen