2017-08-16 4 views
2

Je suis heureux de charger soit Notes et Txtfmt plugins dans neovim, version ligne de commande, sur Mac Os Sierra.Mode double filetype «séparé par points» de Vim

Les deux fonctionnent très bien d'eux-mêmes, mais aucune chance de les charger ensemble dans un fichier de type filet.txtfmt selon la documentation de Vim sur les types de fichiers séparés par des points.

Première tentative que j'ai fait suivait la documentation Notes pour être en mesure de travailler de concert avec Txtfmt et la création du fichier

$/vim/après/ftplugin/notes.vim

avec le contenu.:

" Enable Txtfmt formatting inside notes. 
setlocal filetype=notes.txtfmt 

Comme indiqué dans this discussion cette approche ne fonctionne pas, ce qui crée une boucle infinie. Ensuite, comme suggéré par bpstahlman dans le poste mentionné, j'ai ajouté à mon .vimrc la autocommand suivante:

augroup TxtfmtInNotes 
au! 
au FileType * if expand("<amatch>") == "notes" | setlocalft=notes.txtfmt|endif 
augroup END 

Maintenant, il semblait que pourrait fonctionner, en ce qu'elle déclare un « notes.txtfmt » filetype dans Vim barre d'état, immédiatement après l'ouverture d'un nouveau: Note tampon.
La mauvaise nouvelle: le plugin txtfmt ne se charge pas, aucune commande mappée ne fonctionne. Le drôle: refaire :setlocal ft=notes.txtfmt (ce qui est supposé avoir déjà été fait par l'autocommande suggérée) tout est chargé correctement.

En d'autres termes, il semble que dans mon cas, l'autocommande fonctionne en modifiant le type de fichier mais pas en chargeant le plugin txtfmt, qui est chargé en répétant seulement la commande filetype.

Une suggestion à ce sujet?

Merci

Répondre

2

Si, je l'écraser à

:au BufNewFile,BufRead *.note setf notes.txtfmt 
plug-in Remarques avait une détection filetype (le plug-in fournit apparemment, il n'a pas, et le type de fichier est uniquement définie par les commandes)

dans votre cas, au lieu d'utiliser un type de fichier composé , je voudrais simplement imiter ses effets dans ~/.vim/after/ftplugin/notes.vim:

runtime! ftplugin/txtfmt.vim ftplugin/txtfmt_*.vim ftplugin/txtfmt/*.vim 

Je ne l'ai pas testé, mais c'est plus simple et donc plus efficace que votre solution actuelle d'accrochage dans l'événement FileType.

+0

Cela fonctionne Ingo. Je ne sais pas exactement pourquoi, mais ça marche. Mais, cela ne fonctionne que ENSEMBLE avec 'au FileType * si développez (" ") ==" notes "| setlocal ft = notes.txtfmt | endif ' dans .vimrc. Et ceci soit je ne sais pas pourquoi. Merci. – Daniele