Évitez de reformater les listes à puces avec les options de format + = a

9

J'utilise Vim avec formatoptions +=acomme décrit dans Vim: habillage de mots pour les documents pour formater automatiquement les lignes pendant que j'écris des documents, en particulier des documents Markdown.

Mon problème est que Vim veut reformater également les listes à puces car il y a une ligne vide entre chaque puce.

Ce qui se passe, c'est que Vim reformate

This is wath we will do:

* task 1,
* task 2,
* task 3.

dans

This is wath we will do:

* task 1,   task 2,   task 3.

(Je ne comprends pas non plus pourquoi les astérisques disparaissent dans ce processus de reformatage.)

Comment puis-je empêcher Vim de reformater ces listes?

gioele
la source
Les astérisques disparaissent car Vim les a confondus avec les commentaires des dirigeants.
gioele

Réponses:

5

Essaye ça:

  • ajouter npour formatoptionsque vim reconnaisse les listes ( :set fo+=n)
  • définissez l' formatlistpatoption pour reconnaître l'astérisque comme des puces ( set flp+=\\\|^\\*\\s*) (notez que le nombre de barres obliques inverses dépend de votre magicniveau de ness).

Ce n'est pas parfait sur la base de mes tests, mais il semble être proche.

jw013
la source
3

L' filetypeoption est-elle définie markdownlorsque vous modifiez vos fichiers Markdown? Vous pouvez utiliser :verbose set filetype?pour inspecter la valeur actuelle.

Lorsque vous avez exécuté :filetype plugin on(par exemple à partir de votre .vimrc), et filetypeest réglé sur markdown, Vim la source $VIMRUNTIME/ftplugin/markdown.vimqui fixera certaines options ( comments, formatlistpatet formatoptions) qui devrait aider à le formatage des éléments de liste Markdown.

Remarque: Le modèle de nom de fichier Markdown commun *.mdest en fait mappé au type de fichier modula2par $VIMRUNTIME/filetype.vim. Vous voudrez peut-être remplacer ce paramètre si vous utilisez couramment ce modèle de nom de fichier pour vos fichiers Markdown. Vous pouvez le faire en mettant ceci dans votre .vimrcfichier:

autocmd! filetypedetect BufNewFile,BufRead *.md setfiletype markdown

Alternativement, vous pouvez ajouter une modélisation à chaque fichier:

<!-- vim: set filetype=markdown : -->
Chris Johnsen
la source
Les fichiers de syntaxe de tpope (celui que j'utilise) définissent formatlistpath dans github.com/tpope/vim-markdown/blob/master/ftplugin/markdown.vim . Pour certaines raisons, il semble que le ftplugin ne soit pas chargé ...
gioele
1
Ce vim-markdownplugin devrait être suffisant, mais vous devez activer sa fonctionnalité (et celle des autres plugins de type de fichier) avec :filetype plugin on. Tu vois :help :filetype-plugin-on.
Chris Johnsen