Ma config

Je suis un utilisateur de longue date de la ligne de commande, et de vim en particulier. J’essaye d’apprendre régulièrement de nouvelles choses (méthodes, outils, astuces) pour m’améliorer et être plus efficace. Par exemple, j’ai écrit par le passé un billet sur l’ajout de la branche git dans le prompt de zsh. Je souhaite partager avec vous quelques découvertes récentes.

Tout d’abord, je suis passé de vim à Neovim. Il n’y a quasiment aucune différence d’un point de vue utilisateur, et c’est très bien ainsi ! C’est très stable et un utilisateur de vim sera comme chez lui. D’ailleurs, mes fichiers de config sont les mêmes pour vim et neovim, ce sont juste des liens symboliques de l’un vers l’autre.

Alors, pourquoi changer ? En fait, sous le capot, il y a pas mal de changements qui vont porter leurs fruits plus tard. La base de code a été nettoyé de pas mal de bizarreries (pour cause de compatibilité avec des terminaux que plus personne n’utilise). Il y a un gros travail sur les plugins : ils peuvent être exécutés à l’extérieur du processus principal et communiquer avec lui via msgpack. Ainsi, ils peuvent être écrits dans différents langages et faire des traitements longs (analyse de code), sans bloquer l’affichage pendant plusieurs secondes. neomake est un bel exemple d’utilisation des possibilités de Neovim. Bref, je suis passé à Neovim surtout pour montrer mon soutien à ce projet, car je pense qu’il va faire avancer vim dans le bon sens.

Pour le shell, je continue d’utiliser zsh plutôt que bash. J’avoue ne pas trop savoir comment a évolué bash ces dernières années, mais je n’ai rien lu qui me donne envie d’y revenir. À l’époque où j’avais fait le changement, il y avait pas mal de choses intéressantes sous zsh (la complétion bien plus efficace, ** pour le globbing ou encore la recherche dans l’historique dès que j’appuie sur ). Mais j’y reste car zsh me convient bien, même si parfois je me dis que des alternatives comme fish pourraient être intéressantes.

Ce shell tourne dans rxvt-unicode. Rien de nouveau de ce côté-là. Pour les couleurs, j’utilise maintenant le thème base16 bright. Base16 est pratique et permet d’avoir le même jeu de couleurs dans pas mal d’applications. On trouve des thèmes pour l’utiliser dans le shell, vim, etc. Il n’y a que pour irssi où cela a été un peu difficile. J’ai testé quelques thèmes mais aucun n’allait bien. Du coup, j’ai écrit mon propre thème : base16 (oui, j’aurais pu faire plus original).

Et pour la police, j’utilise Droid sans mono, patchée pour powerline. Je n’utilise pas powerline mais vim-airline, et ces symboles me servent aussi pour irssi.

J’en ai également profité pour changer de prompt dans zsh. Je suis parti de pure et je l’ai modifié pour qu’il tienne sur une seule ligne (prompt_unpure_setup si ça vous intéresse).

Un autre truc que j’ai ajouté récemment dans mon fichier ~/.zshrc est la coloration des pages man :

man() {
  env LESS_TERMCAP_mb=$'\E[01;31m' \
  LESS_TERMCAP_md=$'\E[01;38;5;74m' \
  LESS_TERMCAP_me=$'\E[0m' \
  LESS_TERMCAP_se=$'\E[0m' \
  LESS_TERMCAP_so=$'\E[38;5;246m' \
  LESS_TERMCAP_ue=$'\E[0m' \
  LESS_TERMCAP_us=$'\E[04;38;5;146m' \
  man "$@"
}

Ce n’est pas grand chose, mais ça peut être pratique. Voilà, j’espère que cela pourra inspirer certains d’entre vous. Et n’oubliez pas que ma config traine sur github.com/nono/dotfiles. Il n’y a pas forcément beaucoup de commentaires, mais on peut y trouver des choses utiles.