Gérer sa liste de todos dans Vim
J'ai testé pas mal de solutions pour gérer mes listes de to-do, et j'ai toujours fini par être frustré par l'outil. J'ai depuis six mois une solution qui tient la route : Vim.
Très simplement, je me suis crée une syntaxe personnelle pour me permettre de repérer en un clin d'œil les choses qui m'importent.
Voici le rendu, sur un exemple certes un peu théorique (je ne vais pas publier ma vraie liste de tâches à faire ;)).
Simplement :
- chaque ligne non indentée est prise pour un titre et s'affiche en bleu
- les un ou deux mots en majuscule commençant par un @ s'affichent en vert (j'utilise ça pour identifier des personnes)
- les éléments commençant par un + s'affichent en jaune (j'utilise ça pour identifier des « projets » ou en quelque sorte des Tags)
- les lignes commençant par un ! s'affichent en rouge
- chaque * s'affiche en violet pour me permettre d'avoir un aperçu rapide sur les tâches
- les dates se soulignent.
Le fichier de syntax correspondant est :
" Vim syntax file " Language: mytodo " Maintainer: Jean-Baptiste Hétier " Latest Revision: 04/08/2011 if exists("b:current_syntax") finish endif syn match todoTitle '^\\S\\+.*$' syn match todoPeople '@\\S\\+' syn match todoPeople '@\\S\\+\\s\\u\\S*' syn match todoProject '\\s+\\S\\+' syn match todoImportant '^\\s*!\\s.*$' contains=todoProject,todoPeople,todoDate syn match todoList '^\\s*\\*\\s' syn match todoDate /\\d\\{4\\}\\/\\d\\{2\\}\\/\\d\\{2\\}/ hi todoTitle term=bold ctermfg=DarkCyan guifg=DarkCyan gui=bold hi todoPeople ctermfg=DarkGreen guifg=DarkGreen hi todoProject term=bold ctermfg=DarkYellow guifg=DarkYellow gui=bold hi todoImportant term=bold ctermfg=Red guifg=Red gui=bold hi todoList ctermfg=DarkMagenta guifg=DarkMagenta hi todoDate term=underline gui=underline let b:current_syntax = "mytodo"
Ce fichier de syntaxe s'enregistre dans
~/.vimfiles/syntax/mytodo.vim
sous Linux- ou
C:\\Users''{utilisateur}''\\vimfiles\\syntax\\mytodo.vim
sous Windows.
Ensuite il suffit de faire :set filetype=mytodo
dans Vim pour appliquer la syntaxe au buffer en cours.
Pour que la syntaxe s'applique automatiquement sur les fichier d'extension mytodo, il est possible d'ajouter la ligne suivante dans le vimrc
:
au BufNewFile,BufRead *.mytodo setf mytodo
Voilà, ça ne casses pas des briques mais je trouve que l'efficacité de Vim est excellente pour gérer des todos au quotidien.