Couleurs incorrectes avec vim dans iTerm2 en utilisant Solarized

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

J'utilise également solarized 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 de vim

Pour référence, voici à quoi il ressemble sous MacVim (gui vim) interface graphique de vim

Que dois-je changer dans iTerm ou mon .vimrc pour obtenir les couleurs à la recherche correctement dans ma console vim?

77
demandé sur Zameer Manji 2011-09-02 05:00:19

10 réponses

Quelques choses à vérifier:

  1. Dans iTerm2, dans Preferences - > Profiles - > Terminal, sous "Terminal Emulation" vous avez "Report Terminal Type:" défini sur xterm-256color.

  2. Dans votre .vimrc, il y a quelques options que vous pouvez également définir pour vous assurer qu'il utilise 256 couleurs: {[0]} Et l'un d'entre eux devrait fonctionner, mais #1 d'abord.

Mais, si vous utilisez la valeur par défaut, construite dans vim sur Snow Leopard, cela ne fonctionnera pas, car il n'est pas construit avec le support de 256 couleur. Je crois que la version intégrée dans 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 dit que l'ajout de la ligne let g:solarized_termcolors = 16 a corrigé un problème d'affichage Couleur. Votre propre kilométrage peut varier.

Deuxième édition: Si vous avez chargé la palette de couleurs solarisées dans iTerm2, alors vous devez let g:solarized_termcolors=16. Seulement let g:solarized_termcolors=256 Si vous êtes pas en utilisant le solarized palette comme votre préréglage de couleur iTerm2.

115
répondu Bill Turner 2014-04-18 16:52:54

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 n'ont pas fonctionné pour vous aussi, essayez ceci

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

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

86
répondu Jason Yeo 2012-11-25 17:49:57

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

Télécharger le paquet 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 Préférences, puis sélectionnez l'onglet" Couleurs". Cliquez sur "Charger les préréglages" 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 Solarisées dans iTerm 2, mais n'avez pas encore appliquées. Pour les appliquer, il suffit de sélectionner un profil à partir de la fenêtre Liste des profils à gauche, ou créez un nouveau profil profil. Sélectionnez ensuite le préréglage Solarized Dark ou Solarized Light de le menu déroulant "charger les préréglages".

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

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
répondu d.danailov 2016-03-24 21:04:08

Cela a fonctionné pour moi dans OS X 10.9.1 dans iTerm 2 ainsi que Terminal. Une erreur que je faisais était de mettre la déclaration colorscheme avant les paramètres termtrans et termcolors (et j'avais besoin des deux pour le faire fonctionner). Comme d'autres l'ont dit, j'ai défini mon 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
8
répondu Amar B 2014-02-12 01:59:07

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

NOTE IMPORTANTE POUR LES UTILISATEURS DU TERMINAL:

Si vous allez utiliser Solarized en mode Terminal (c'est-à-dire pas dans une version GUI comme gvim ou macvim), veuillez envisager de définir le colorscheme de votre émulateur de terminal pour utiliser la palette Solarized. J'ai inclus des palettes pour certains émulateur de terminal populaire ainsi que Xdefaults dans le téléchargement officiel Solarized disponible à partir de Solarisés page d'accueil. Si vous utilisez Solarized sans ces couleurs, Solarized devra être dit de dégrader son colorscheme à un ensemble compatible avec la palette limitée de 256 terminaux (alors qu'en utilisant les 16 valeurs de couleur ansi du terminal, vous pouvez définir les valeurs spécifiques correctes pour la palette Solarized).

Si vous utilisez les couleurs de terminal personnalisées, solarized.vim devrait travailler hors de la boîte pour vous. Si vous utilisez un émulateur de terminal qui prend en charge 256 couleurs et que vous ne souhaitez pas personnalisé Solarized terminal couleurs, vous aurez besoin d'utiliser le dégradé 256 colorscheme. Pour ce faire, ajoutez simplement la ligne suivante avant la ligne solarisée colorschem:

let g:solarized_termcolors=256

Encore une fois, je recommande simplement de changer les couleurs de vos terminaux en valeurs Solarisées manuellement ou via l'un des nombreux schémas de terminaux disponibles pour l'importation.

6
répondu Proksima 2013-12-09 00:30:08

J'ai eu du mal avec le même problème sur OSX 10.11.6, Iterm2 Build 3.0.12.

Voici ma solution pour cela.

  1. .vimrc

    Syntaxe activer ensemble d'arrière-plan=dark colorscheme solarisés

  2. Définissez le type de Terminal De Rapport sur xterm-256color.

entrez la description de l'image ici

  1. Définir la couleur prédéfinie dans le profil de Solarisés Sombre

entrez la description de l'image ici

5
répondu Jason Kim 2016-11-21 19:25:33

La réponse de Bill Turner fonctionne, mais il existe un moyen d'obtenir les couleurs pour correspondre exactement à MacVim. Solarized a un support spécifique pour iTerm2, entre autres émulateurs de terminaux.

  1. Allez à la page GitHub iterm2-colors-solarized
  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 exactement comme elles sont dans les éditeurs gui.

4
répondu Will 2012-09-20 20:02:37

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

Dans les couleurs dir sur vim-color-solarized existe un arquive nommé ' solarozed.vim "

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

Remplacer par:
exe " let s: bg_back = '".s: vmode."bg=".s:aucun ."'"

1
répondu dsandrade 2015-03-21 12:40:27

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

0
répondu Mike 2017-08-05 22:10:23

Pour tous les problèmes que j'avais encore, j'avais installé iterm2 Solarized color profile . L'installation devim-color-solarized dans les bundles vim et le suivi des instructions étaient inutiles et incompatibles. Il y avait des problèmes de mise en évidence drôles comme dans la capture d'écran ci-dessus.

Leçon apprise: ne faites pas les deux.

0
répondu nlambert 2018-03-03 22:59:48