Après la spontanéité de la version 0.1 publiée le jour même de sa création sur un coup de tête, voici la version 0.2, à peine plus mûre, mais un peu plus complète.

Rappel

Pour utiliser le fichier de syntaxe, renommez-le en spip.vim et placez-le dans $HOME/.vim/syntax/. Ajoutez également la ligne suivante dans votre .vimrc :

au BufNewFile,BufRead *.spip        set ft=spip

Le fichier de macros est à placer dans $HOME/.vim/ftplugin/spip/ et à renommer en spip.vim.

Très probablement, dans une version ultérieure, je ferais un petit script d'installation propre.

Contenu

Le fichier de syntaxe pour Spip colore les éléments suivants :

  • Italique (ou plus exactement emphase).
  • Gras (ou plus exactement emphase forte).
  • Titre de niveau 1, le seul par défaut dans Spip.
  • Titre de niveau 2 que je fabrique en fait avec un élément de liste Spip et du gras : - {{Titre 2}}.
  • Liste à puces et numérotées : trois couleurs différentes pour les trois niveaux, mais couleurs identiques entre puces et numéros. Les puces et les numéros de niveaux 1 sont colorés en jaune par exemple.
  • Les URL, y compris les liens locaux vers un autre article : [article en local->10]. Les crochets et la flèche sont colorés en bleu et le contenu en jaune sombre. En revanche, les flèches, hors de ce contexte, ne sont pas colorées.
  • Le code.
  • Les cadres : le fond est coloré en bleu sombre.
  • Les citations : fond coloré en vert sombre.
  • Les notes de bas de page.
  • Les liens vers Wikipédia.
  • Les insertions de documents attachés tels que les images. Pour insérer une image, il faut toujours passer par l'interface de Spip. Récupérez ensuite le code (du style <img34|center>) et copiez-le dans Vim.

Note : pour l'instant la coloration est encore incomplète vu qu'elle ne gère que le cas où Vim est lancé dans un terminal coloré (qui est ma principale utilisation). Si vous utilisez Gvim, il se peut fortement que ça ne marche pas. Ça viendra dans une prochaine version.

Le fichier de macros pour Spip contient seulement des macros à saisir en mode Insertion. Prochainement je m'occuperai des modes Commande et Visuel (pour ce dernier, il sera possible de sélectionner du texte (commande v) pour le mettre en emphase par exemple).

  • H1 : titre 1
  • H2 : faux titre 2
  • CC ou COD : code
  • QUO : bloc de citation
  • CAD : bloc de cadre
  • NOT : note de bas de page
  • _EM : emphase
  • _ST : emphase forte
  • URL : URL
  • _WP : lien vers Wikipédia
  • F2, F3, F4 : puce de niveau 1, 2 ou 3
  • Shift+F2, Shift+F3, Shift+F4 : item numéroté de niveau 1, 2 ou 3

Note : s'il vous arrive de vouloir taper le texte URL par exemple, sans que celui-ci ne soit transformé, tapez le U puis attendez un peu que le curseur passe à la position suivante et finissez avec RL.

Comment ça marche

Coloration

Je reporte ici le contenu des commentaires présents dans le fichier de syntaxe.

À lire : la syntaxe colorée dans Vim

Le mot-clé syntax identifie un élément à colorier. Ce peut être

  • un mot-clé inscrit en dur : syntax keyword
  • un motif : syntax match
  • une région (motif pour le début et la fin) : syntax region

Le mot-clé highlight défini les couleurs à utiliser pour un élément donné. On distingue trois environnements :

  • terminal en noir et blanc -> term
  • terminal en couleurs -> cterm, ctermfg, ctermbg
  • interface graphique (Gvim) -> gui, guifg, guibg

Macros

Sans rentrer dans le détail voyons comment fonctionne la macros suivante :

imap CC <code></code><ESC>6hi

imap indique une commande pour le mode Insertion (il y a aussi map, pour tous les modes, cmap pour le mode Commande et vmap pour le mode Visuel).

CC est la commande. Lorsque vous tapez CC la commande est exécutée.

Cette commande insère le texte <code></code> puis passe en mode Commande (<ESC> simule la touche Echap), exécute 6 fois h (déplacement du curseur vers la gauche) et repasse en mode Insertion (avec la commande i). Vous êtes donc automatiquement positionné entre les deux balises de code et vous pouvez saisir votre texte directement.