web-dev-qa-db-fra.com

iterm vim colorscheme ne fonctionne pas

Lorsque j'exécute vim à partir de la ligne de commande dans iTerm, la coloration syntaxique ne semble pas fonctionner localement.

Dans vim par exemple, j'ai installé un joli schéma de couleurs qui fonctionne assez bien dans MacVim mais ce serait génial si dans iTerm il montrait le même.

Des idées sur la façon dont je peux activer cela?

C'est le schéma de couleurs que j'essaie d'utiliser http://www.vim.org/scripts/script.php?script_id=234

32
Derek Organ

Ce schéma de couleurs semble ne prendre en charge que les terminaux 256 couleurs. Si Vim pense que votre terminal ne prend en charge que 8 couleurs, vous ne verrez pas ce schéma de couleurs spécifique.

Vous pouvez vérifier cela dans Vim en:

:echo &t_Co

Si cela renvoie 8, C'est peut-être le problème. Essayez de le régler sur 256 dans votre ~/.vimrc et voyez si cela aide:

let &t_Co=256
79
Curt Nelson

Afin d'activer la mise en évidence du code dans vim, essayez d'activer le plugin de syntaxe:

:syntax enable
70
Sean

Pour ceux qui ont encore des problèmes.

iTerm 2 -> Préférences -> Profils -> Couleurs -> Contraste minimum -> le plus bas

setup

20
yqrashawn

J'ai déjà eu ce problème, ainsi que certains problèmes connexes, je vais donc résumer ce que j'ai trouvé.

  1. Assurez-vous que iTerm est configuré pour utiliser 256 couleurs. Essayez $ echo $TERMen ligne de commande, et si vous ne voyez pas xterm-256color puis suivez les instructions dans cette réponse .

  2. Configurez votre vimrc pour gérer également les autres terminaux. Le Terminal normal dans Snow Leopard ne prend en charge que 8 couleurs par exemple et clignotera si vous essayez d'utiliser un jeu de couleurs 256 couleurs (je n'en ai pas défini un dans ce cas). Voici ce que j'ai:

    " enable 256 colors in GNOME terminal (for my Ubuntu VM)
    if $COLORTERM == 'gnome-terminal'
        set t_Co=256
    endif
    
    " set your color scheme (replace wombat with whatever yours is called)
    " if you're using a gvim or macvim, then your color scheme may have a version
    " that uses more than 256 colors
    if has("gui_running")
        colorscheme wombat
    elseif &t_Co == 256
        colorscheme wombat256
    endif
    
    " turn on language specific syntax highlighting
    syntax on
    
11
Dean

Malgré avoir suivi tous les conseils de cette question (et d'autres questions similaires), j'ai finalement trouvé mon problème dans une partie oubliée d'un vimrc que j'avais pris quelque part sur le Web il y a des années (parce qu'il était plutôt bien organisé), puis profondément modifié pour mes propres fins.

Mais la zone à problème était dans un petit groupe de paramètres que je n'avais jamais touché, dans le fichier d'origine avec lequel j'ai commencé. Le morceau pertinent du .vimrc était:

   " GVIM- (here instead of .gvimrc)
   if has('gui_running')
          set guioptions-=T               " remove the toolbar
          set lines=40                    " 40 lines of text instead of 24,
   else
           set term=builtin_ansi       " Make arrow and other keys work
   endif

Sans surprise (rétrospectivement), cette ligne "set term" réinitialise les choses de sorte que, quel que soit le type de rapport de votre terminal dans la variable d'environnement TERM, vous vous retrouvez avec un terminal ANSI 8 couleurs générique. La définition explicite de "term" dans le .vimrc est probablement une très mauvaise idée, tout comme la définition directe de t_Co.

J'ai supprimé tout ce bloc (et mis les paramètres gvim dans .gvimrc, où ils appartiennent), et tout fonctionne correctement pour moi depuis.

3
Trevor Powell