blog:tenir_ses_notes_a_jour_vim_a_la_rescousse

Tenir ses notes à jour, vim à la rescousse

Commençons par les notes : soit un répertoire log/ (au milieu d'un dépôt Git, il va sans dire) dans le lequel je crée un répertoire par mois ; en ce moment, je travaille dans log/2016-06/. Dans chacun de ces répertoires, j'ai un fichier par jour ; aujourd'hui 8 juin 2016, j'ai édité log/2016-06/08. Dans ces fichiers texte, je note (un peu pêle-mêle) mes activités de la journée, des notes de lecture, etc.

Au fil du temps, mes fichiers sont de plus en plus formatés ; j'ai tenté Markdown et orgmode sans être convaincu. Du coup, je nomme mes fichiers .dl (comme daily log, j'étais inspiré…) et j'ai défini un fichier de syntaxe Vim.

Un fichier type se présente comme suit :

# $Id: 00a0d740eb33b69967c9e84ef53de06e91b26a60$
#

* Journée
  - première activité pas tout à fait triviale
    détails divers
  - seconde activité, cf. [tkt #1234] {1h}
  - lecture, notes diverses
    - [[http://vimdoc.sourceforge.net/htmldoc/usr_44.html][Your own syntax highlighted]]
  - réunion "titre supra sérieux" {1h30}
    * discussion homérique sur la taille de l'étiquette
    * quadricapilosection sur la couleur de l'étiquette
    * ...
  - dernière activité technique, cf. [tkt #1235]
    * détail *vraiment intéressant* impliquant `du code en ligne`
      | code en bloc...
      | code en bloc encore...
      
* TODO
  - tâche prévue no1
  - tâche prévue no2
  - finir tâches d'hier !

* Perso
  - prendre du pain

Dans ~/.vim/ftdetect/dl.vim, ajoutons notre nouveau type :

~/.vim/ftdetect/dl.vim
autocmd BufNewFile,BufRead *.dl set filetype=dl

Dans ~/.vim/ftdetect/dl.vim, définissons la syntaxe et les couleurs :

~/ftplugin/dl.vim
" Vim syntax file
" Language: Dayly Log files
" Maintainer: Pascal Cabaud
" Last Change: 2016-06-08
 
if !exists("main_syntax")
    if exists("b:current_syntax")
        finish
    endif
    let main_syntax = 'dl'
endif
 
" to avoid portability problems
set magic
 
" case sensitive
syntax case match
 
syn keyword dlTodo TODO FIXME XXX NOTE: NB: PS: DONE
 
syn match dlSections /^\* .*$/
syn match dlComment  /^\#.*$/ contains=dlTodo
syn match dlBold     /\*\w[^\*]*\w\*/
syn match dlTickets  /\[\(tkt\|dsi\|eila\|rdm\) \#\(\d\+\|XXX\)\]/ contains=dlTodo
syn match dlCode     /^\s\{2,}|\s.*$/
syn match dlTime     /{\d*\(h\d*\|mn\)}/
syn match dlTask     /^\s\{2}- .*$/ contains=dlTickets,dlTime,dlCode,dlTodo,dlString,dlBold
syn match dlUrl      /\[\[[[:alpha:]\+]*:\/\/[^\]]*\]\[[^\]]*\]\]/
 
syn region dlString   start='"' end='"'
syn region dlCode     start='`' end='`'
 
hi def link dlTodo     Todo
hi def link dlSections Delimiter
hi def link dlComment  Comment
hi def link dlTickets  Identifier
hi def link dlString   String
hi def link dlTime     PreProc
hi def link dlCode     Typedef
hi def link dlTask     Keyword
hi def link dlBold     Todo
hi def link dlUrl      PreProc

Et voilà : Exemple avec iTerm2 et Solarized

  • blog/tenir_ses_notes_a_jour_vim_a_la_rescousse.txt
  • Dernière modification : 2016/06/14 20:08
  • de pc