Samedi 15 novembre 2008
Tout d'abord le vrac. Le mois de novembre est assez actif au niveau de la communauté symfony avec la préparation de la sortie de la version 1.2 et l'annonce de toutes les belles choses qu'elle apporte. On pourrait croire qu'avec cela en tête je passe toutes mes soirées à clearer du cache, hé bien non. Je viens d'ajouter une ligne à la longue liste des trucs captivants qui peuvent prendre du temps en soirée et en week end : la confection des pâtes.


Pour les raviolis, aujourd'hui la farce (trouvée sur internet) : épinards, ail, ricotta et parmesan. Le tout fond pendant la cuisson des pâtes, c'est une tuerie.

Les plus assidus d'entre vous auront remarqué que j'ai écrit les 2 derniers articles en anglais. J'ai en effet remarqué dans les stats que de plus en plus de lecteurs utilisent google translation pour lire les articles à dominante technique. J'ai pris la décision de publier les articles purement techniques en anglais. Ce n'est pas le cas de ma bafouille aujourd'hui puisque je vous propose un instant de détente en jouant avec la coloration dans Vim.

Pourquoi colorier Vim ?
Comme toujours dans Vim, le but est d'aller plus vite. Aller plus vite ça passe aussi par mettre en valeur  ce qui est pertinent. Je ne parle pas ici de la coloration syntaxique du code mais bien de ce que nous devons rendre plus ou moins visible à l'écran. La définition d'un jeu de définition d'éléments de présentation s'appelle dans vim un colorscheme. Il en existe un certain nombre par défaut dans Debian, vous pouvez les voir et en changer en tapant «:colorscheme <TAB>». En appuyant plusieurs fois sur la touche <TAB> vous verrez défiler la liste des colorschemes. Appuyez sur entrée pour valider. Pour vérifier quel colorscheme vous convient le mieux, essayez les sur une belle page de code avec le module project et un split horizontal par exemple. Si aucun de ceux installé sur votre ordinateur ne vous convient, vous pouvez en télécharger de nouveaux sur ce site.

Dans mon cas, par exemple pour les formations, mon écran est projecté sur un tableau et les caractères sombres sont très peu distincts. J'opte donc pour le colorscheme «pablo» qui est assez sobre mais surligne ce dont j'ai besoin : les mots clés ainsi que les fonctions PHP et les variables.
Ce colorscheme possède par contre quelques défauts génants. La barre de titre de la fenêtre d'édition active est en noir et se mélange avec le code. Sur la photo il est difficile de voir que j'ai ouvert 2 fichiers.


Je vais donc construire mon propre colorscheme à partir de pablo. Pour cela, je copie le colorscheme depuis /usr/share/vim/vim71/colors vers ~/.vim/colors et je le renomme en formation. Que y a-t-il dans un fichier de colorscheme ? Presque uniquement des appels à la fonction Vim «highlight».
Cette fonction permet de définir ou de vérifier comment s'affichent les différents éléments dans Vim suivant le type de terminal utilisé. Pour voir la définition actuelle tapez juste «:hi» (raccourci pour :«highlite»). Vous devriez voir s'afficher quelque chose comme ceci :
Le premier argument est le nom du motif concerné. Ensuite, Vim affiche le motif tel qu'il apparait dans votre terminal. Suit la définition de l'affichage dans les différents types de terminaux.
Vim connait 3 types de terminaux :
  • les terminaux textes (term)
  • les terminaux textes couleur (cterm) en 8 et 16 couleurs
  • les terminaux graphiques (gui)
Vim va cascader la définition des terminaux. La définition term s'applique tout le temps, cterm s'applique en plus si votre terminal le supporte, de même pour gui. La définition pour le terminal permet de définir l'allure générale du motif :
  • bold
  • underline
  • undercurl
  • reverse
  • inverse
  • italic
  • standout
  • NONE
Dans le cas des terminaux couleur il est également possible de préciser la couleur de la police (ctermfg) et du fond (ctermbg). Ce qui nous intéresse ici c'est la définition de «StatusLine» qui affiche le nom du fichier en cours d'édition. Dans le colorscheme «pablo», la définition est la suivante :

StatusLine     xxx term=none ctermfg=11 ctermbg=12 guifg=#ffff00 guibg=#0000ff

Enlevons les couleurs en effaçant les déclaration ctermfg et ctermbg.

StatusLine     xxx term=reverse guifg=#ffff00 guibg=#0000ff

Il est alors possible de recharger le fichier de colorscheme dans vim en tapant simplement «:colorscheme formation». La barre de status de la fenêtre active devrait alors passer en blanc brillant. Il peut également être intéressant de diminuter l'intensité du blanc sur les fenêtres inactives afin de mettre en valeur l'endroit de saisie du texte.

Pour afficher la définition courante de l'objet StatusLineNC «:hi StatusLineNC». Nous allons ajouter ceci dans notre fichier :

highlight StatusLineNC   term=reverse cterm=reverse ctermfg=grey gui=reverse

Notez que nous utisons ici ctermfg pour changer la couleur du fond, c'est parce que nous sommes en inverse vidéo. Pour changer la définition des replis de code (folds) afin de les rendre moins visibles :

highlight hi Folded term=standout cterm=bold ctermfg=DarkGrey ctermbg=0

Pour en savoir plus, l'aide de Vim sur le sujet est disponible en tapant «:help highlite».

Par greg - Publié dans : vim
Ecrire un commentaire - Voir les 1 commentaires - Recommander
Retour à l'accueil
 
Créer un blog sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus - Articles les plus commentés