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 ;)).
Todo dans Vim

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.

Vus : 1512
Publié par djibux : 113