web-dev-qa-db-fra.com

Couleurs incorrectes avec vim dans iTerm2 avec Solarized

J'ai un problème étrange avec iTerm2, dans vim terminal (non-gui) et le jeu de couleurs solarisé. Tout d’abord, j’ai configuré iTerm2 pour utiliser le jeu de couleurs darkized solarisé.

J'utilise aussi solarisé pour vim. J'ai les lignes suivantes dans mon .vimrc

set background=dark
colorscheme solarized

Dans le terminal, le schéma de couleurs semble incorrect: console vim

Pour référence, voici à quoi cela ressemble sous MacVim (gui vim) gui vim

Que dois-je changer dans iTerm ou dans mon fichier .vimrc pour que les couleurs se présentent correctement dans ma console vim?

77
Zameer Manji

Quelques points à vérifier:

  1. Dans iTerm2, dans Préférences -> Profils -> Terminal, sous "Émulation de terminal", vous avez "Type de rapport de rapport:" défini sur xterm-256color.

  2. Dans votre fichier .vimrc, vous pouvez également définir certaines options pour vous assurer qu’il utilise 256 couleurs:

    set background=dark
    " solarized options 
    let g:solarized_visibility = "high"
    let g:solarized_contrast = "high"
    colorscheme solarized
    
    L’une d’elles devrait fonctionner, mais la première doit être la première.

MAIS, si vous utilisez la version par défaut intégrée à vim sous Snow Leopard, cela ne fonctionnera pas car il n’est pas compatible avec la prise en charge de 256 couleurs. Je crois que la version intégrée à Lion le fait.

Edit: Sur la base de plusieurs commentaires sur cette réponse, j'ai supprimé la ligne let g:solarized_termcolors = 256 de l'exemple .vimrc ci-dessus. Il semble que cela pourrait être un problème pour certains. Un autre indique que l’ajout de la ligne let g:solarized_termcolors = 16 corrige un problème d’affichage des couleurs. Votre propre kilométrage peut varier.

Deuxième édition: Si vous avez chargé la palette de couleurs solarisée dans iTerm2, vous devez alors let g:solarized_termcolors=16. Seulement let g:solarized_termcolors=256 si pas utilisez la palette solarisée comme préréglage de couleurs iTerm2.

115
Bill Turner

Les réponses ci-dessus n'ont pas fonctionné pour moi.

J'utilise iTerm2 avec vim 7.3 sur OS X 10.7.4.

Si les solutions ci-dessus ne vous convenaient pas aussi, essayez ceci.

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

Mise à jour: Selon Jim Stewart, cela fonctionne sur Kitty aussi.

87
Jason Yeo

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

Téléchargez le package Solarized ( https://github.com/altercation/solarized ) et suivez les instructions: 

Ouvrez iTerm 2, ouvrez Préférences, cliquez sur l'icône "Profils" (anciennement Adresses, anciennement Signets) dans la barre d'outils des préférences, puis sélectionnez l'onglet "Couleurs". Cliquez sur "charger les presets" et sélectionnez "importer ...". Sélectionnez le fichier de thème Solarized Light ou Dark.

Vous avez maintenant chargé les préréglages de couleurs Solarized dans iTerm 2, mais ne les ont pas encore appliqués. Pour les appliquer, sélectionnez simplement un fichier .__ existant. profil dans la fenêtre de la liste de profils à gauche, ou créez un nouveau fichier profil. Sélectionnez ensuite le préréglage Solarized Dark ou Solarized Light dans les "Load Presets" déroulants.

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

Ou: 

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

Modifier .vimrc

Thème sombre: 

syntax enable
set background=dark
colorscheme solarized

Lumière 

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

Cela a fonctionné pour moi sous OS X 10.9.1 dans iTerm 2 ainsi que dans Terminal. Une erreur que je faisais a été de mettre la déclaration colorscheme avant les paramètres termtrans et termcolors (et j'avais besoin des deux pour que cela fonctionne). Comme d’autres l’ont dit, j’ai défini le type de terminal sur xterm-256color

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

colorscheme solarized
set background=dark
9
Amar B

Du créateur: http://ethanschoonover.com/solarized/vim-colors-solarized

NOTE IMPORTANTE POUR LES UTILISATEURS DE TERMINAL:

Si vous envisagez d’utiliser Solarized en mode Terminal (c’est-à-dire pas dans une version à interface graphique telle que gvim ou macvim), veuillez envisager de définir le schéma de couleurs de votre émulateur de terminal pour utiliser la palette Solarized. J'ai inclus des palettes pour certains émulateurs de terminal populaires ainsi que Xdefaults dans le téléchargement officiel Solarized disponible sur la page d'accueil Solarized. Si vous utilisez Solarized sans ces couleurs, vous devrez indiquer à Solarized de dégrader son schéma de couleurs en un ensemble compatible avec la palette limitée de 256 terminaux (alors qu'en utilisant les valeurs de couleur 16 ans du terminal, vous pouvez définir les valeurs spécifiques correctes pour le paramètre Solarized. palette).

Si vous utilisez les couleurs de terminal personnalisées, solarized.vim devrait fonctionner comme prévu. Si vous utilisez un émulateur de terminal prenant en charge 256 couleurs et que vous ne souhaitez pas utiliser les couleurs de terminal Solarized personnalisées, vous devrez utiliser le schéma de 256 couleurs dégradé. Pour ce faire, ajoutez simplement la ligne suivante avant la ligne Colorschem solarisée:

let g:solarized_termcolors=256

Là encore, il est recommandé de modifier simplement les couleurs de votre terminal en valeurs Solarized, soit manuellement, soit via l’un des nombreux modèles de terminaux disponibles à l’importation.

6
Proksima

Je me suis débattu avec le même problème sous OSX 10.11.6, iTerm2 Build 3.0.12.

Voici ma solution pour cela.

  1. .vimrc

    syntaxe enable set background = dark colorscheme solarisé

  2. Définissez le type de terminal de rapport sur xterm-256color.

 enter image description here

  1. Définir la couleur prédéfinie dans le profil sur Solarized Dark

 enter image description here

5
Jason Kim

La réponse de Bill Turner fonctionne, mais il existe un moyen de faire en sorte que les couleurs correspondent exactement à MacVim. Solarized prend en charge spécifiquement iTerm2, parmi d'autres émulateurs de terminaux.

  1. Aller à la page de github solarisée par iterm2-colors-colors
  2. Suivez les instructions sous "Installation"
  3. Assurez-vous que votre .vimrc a la ligne colorscheme solarized

Cela devrait définir les couleurs vim dans iTerm2 pour être exactement comme elles sont dans les éditeurs de gui.

4
Will

Un moyen simple de résoudre ce problème est: 

En couleurs dir sur vim-color-solarisé existe un arquive nommé 'solarozed.vim'

Ouvrez ce fichier et recherchez:
exe "let s: bg_back = '" .s: vmode. "bg =". s: back. "'"

remplacer par:
exe "let s: bg_back = '" .s: vmode. "bg =". s: none. "'"

1
dsandrade

J'ai essayé toutes les suggestions précédentes. Je viens d'ajouter set t_Co=256 à .vimrc et tout a été corrigé. Je n'avais pas besoin de créer un alias tmux ni de changer mon fichier de configuration.

0
Mike

Pour tout problème persistant, j’avais installé iterm2 profil de couleur solarisé . L'installation de vim-color-solarized sur les ensembles vim et le respect des instructions étaient inutiles et incompatibles. Il y avait des problèmes de mise en évidence amusants comme dans la capture d'écran ci-dessus.

Leçon apprise: ne faites pas les deux.

0
nlambert