web-dev-qa-db-de.com

Falsche Farben mit vim in iTerm2 mit Solarized

Ich habe ein seltsames Problem mit iTerm2, in Terminal Vim (Nicht-GUI) und dem solarisierten Farbschema. Zuerst habe ich iTerm2 so eingestellt, dass das dunkle solarisierte Farbschema verwendet wird.

Ich benutze auch Solar für vim. Ich habe die folgenden Zeilen in meiner .vimrc

set background=dark
colorscheme solarized

Im Terminal sieht das Farbschema falsch aus: console vim

Zum Nachschlagen sieht es unter MacVim (gui vim) .__ aus.gui vim

Was muss ich in iTerm oder .vimrc ändern, damit die Farben in meiner Konsolenversion korrekt angezeigt werden?

77
Zameer Manji

Ein paar Dinge zu überprüfen:

  1. In iTerm2 unter Voreinstellungen -> Profile -> Terminal unter "Terminal Emulation" haben Sie "Report Terminal Type:" auf xterm-256color gesetzt.

  2. In Ihrer .vimrc-Datei können Sie einige Optionen festlegen, um sicherzustellen, dass 256 Farben verwendet werden:

    set background=dark
    " solarized options 
    let g:solarized_visibility = "high"
    let g:solarized_contrast = "high"
    colorscheme solarized
    
    Und eine davon sollte funktionieren, aber zuerst # 1.

ABER, wenn Sie die standardmäßige, in Snow Leopard integrierte Version von vim verwenden, funktioniert dies nicht, da es nicht für die Unterstützung von 256 Farben ausgelegt ist. Ich glaube, dass die in Lion eingebaute Version es tut.

Bearbeiten: Aufgrund mehrerer Kommentare zu dieser Antwort habe ich die Zeile let g:solarized_termcolors = 256 aus dem obigen Beispiel .vimrc entfernt. Es scheint, dass dies für manche ein Problem sein könnte. Ein anderes sagt, dass durch das Hinzufügen der Zeile let g:solarized_termcolors = 16 ein Problem mit der Farbanzeige behoben wurde. Ihre eigenen Kilometer können variieren.

Zweite Bearbeitung: Wenn Sie die solarisierte Farbpalette in iTerm2 geladen haben, müssen Sie let g:solarized_termcolors=16. Nur let g:solarized_termcolors=256, wenn Sie nicht die solarisierte Palette als Ihre iTerm2-Farbvorgabe verwenden.

115
Bill Turner

Die obigen Antworten haben für mich nicht funktioniert.

Ich verwende iTerm2 mit vim 7.3 unter OS X 10.7.4.

Wenn die oben genannten Lösungen auch für Sie nicht funktionierten, versuchen Sie dies

syntax on
set background=dark
let g:solarized_termtrans = 1
colorscheme solarized

Update: Laut Jim Stewart funktioniert das auch auf Kitty .

87
Jason Yeo

https://github.com/altercation/solarized/tree/master/iterm2-colors-solarized

Laden Sie das Solarized-Paket herunter ( https://github.com/altercation/solarized ) und befolgen Sie die Anweisungen: 

Öffnen Sie iTerm 2, öffnen Sie die Voreinstellungen, klicken Sie in der Voreinstellungs-Symbolleiste auf das Symbol "Profile" (früher Adressen, früher Lesezeichen), und wählen Sie die Registerkarte "Farben" aus. Klicken Sie auf "Voreinstellungen laden" und wählen Sie "Importieren ...". Wählen Sie die Designdatei Solarized Light oder Dark aus.

Sie haben jetzt die Solarized-Farbvoreinstellungen in iTerm 2 geladen, aber habe sie noch nicht angewendet. Um sie anzuwenden, wählen Sie einfach ein vorhandenes .__ aus. Profil aus dem Profillistenfenster auf der linken Seite oder erstellen Sie ein neues Profil. Wählen Sie dann die Voreinstellung Solarized Dark oder Solarized Light aus die "Load Presets" Dropdown-Liste.

=====================================

Oder: 

cd ~/.vim/bundle
git clone git://github.com/altercation/vim-colors-solarized.git

Ändern .vimrc

Dunkles Thema: 

syntax enable
set background=dark
colorscheme solarized

Licht 

syntax enable
set background=light
colorscheme solarized
12
d.danailov

Dies funktionierte für mich in OS X 10.9.1 in iTerm 2 sowie in Terminal. Ein Fehler, den ich gemacht habe, war, die Colorscheme-Deklaration vor den Termtrans- und Termcolors-Einstellungen zu setzen (und ich brauchte beides, damit das funktioniert. Wie andere schon gesagt haben, habe ich meinen Terminaltyp auf xterm-256color gesetzt

if !has("gui_running")
    let g:solarized_termtrans=1
    let g:solarized_termcolors=256
endif

colorscheme solarized
set background=dark
9
Amar B

Vom Ersteller: http://ethanschoonover.com/solarized/vim-colors-solarized

WICHTIGER HINWEIS FÜR TERMINAL-BENUTZER:

Wenn Sie Solarized im Terminal-Modus verwenden möchten (d. H. Nicht in einer GUI-Version wie gvim oder macvim), beachten Sie bitte, dass Sie das Farbschema Ihres Terminalemulators für die Verwendung der Solarized-Palette einstellen. Ich habe im offiziellen Solarized-Download auf der Solarized-Homepage Paletten für einige beliebte Terminal-Emulatoren sowie Xdefaults enthalten. Wenn Sie Solarized ohne diese Farben verwenden, muss Solarized aufgefordert werden, sein Farbschema auf einen Satz zu reduzieren, der mit der begrenzten Palette von 256 Terminals kompatibel ist. Wenn Sie jedoch die 16 ANSI-Farbwerte des Terminals verwenden, können Sie die richtigen, spezifischen Werte für Solarized festlegen Palette).

Wenn Sie die benutzerdefinierten Terminalfarben verwenden, sollte solarized.vim sofort funktionieren. Wenn Sie einen Terminalemulator verwenden, der 256 Farben unterstützt, und die benutzerdefinierten Solarized-Terminalfarben nicht verwenden möchten, müssen Sie das herabgesetzte 256-Farbschema verwenden. Fügen Sie dazu einfach die folgende Zeile vor der Colorschem-Solarisierungslinie hinzu:

let g:solarized_termcolors=256

Ich empfehle Ihnen, die Farben Ihrer Terminals entweder manuell oder über eines der vielen für den Import verfügbaren Terminals in Solarized-Werte zu ändern.

6
Proksima

Ich hatte Probleme mit dem gleichen Problem unter OSX 10.11.6, iTerm2 Build 3.0.12.

Hier ist mein Fix dafür.

  1. .vimrc

    syntax aktivieren Hintergrund festlegen = dunkel Farbschema solarisiert

  2. Legen Sie den Report-Terminaltyp auf xterm-256color fest.

 enter image description here

  1. Setzen Sie die Farbvorgabe im Profil auf Solarized Dark

 enter image description here

5
Jason Kim

Bill Turners Antwort funktioniert, aber es gibt eine Möglichkeit, die Farben genau auf MacVim abzustimmen. Solarized unterstützt unter anderem Terminal-Emulatoren speziell für iTerm2.

  1. Gehe zur iterm2-colors-solarized github-Seite
  2. Folgen Sie den Anweisungen unter "Installation".
  3. Stellen Sie sicher, dass Ihre .vimrc die Zeile colorscheme solarized hat.

Dies sollte die Vim-Farben in iTerm2 genau so einstellen, wie sie in den GUI-Editoren sind.

4
Will

Ein einfacher Weg, um dieses Problem zu lösen, ist: 

In den Farben dir auf vim-color-solarized gibt es ein Archiv namens 'solarozed.vim'

Öffnen Sie diese Datei und suchen Sie:
exe "let s: bg_back =" ".s: vmode." bg = ". s: back." "

ersetzen:
exe "let s: bg_back =" ".s: vmode." bg = ". s: none." "

1
dsandrade

Ich habe alle vorherigen Vorschläge ausprobiert. Ich habe gerade set t_Co=256 zu .vimrc hinzugefügt und es wurde behoben. Ich musste keinen tmux-Alias ​​erstellen oder meine Konfigurationsdatei ändern.

0
Mike

Für alle Probleme, die ich noch hatte, hatte ich iterm2 solarized color profile installiert. Die Installation von vim-color-solarized in vim-Bundles und das Befolgen der Anweisungen war nicht erforderlich und inkompatibel. Es gab lustige Hervorhebungsprobleme wie bei der Bildschirmaufnahme oben.

Lektion gelernt: mache nicht beides.

0
nlambert