2017-08-16 2 views
2

Ich bin glücklich, entweder Notes und Txtfmt Plugins in Neovim, Befehlszeilenversion, auf Mac Os Sierra zu laden.Vim ist 'dot-separated' doppelte Dateityp Mode

Beide arbeiten sehr eigenständig, aber keine Chance, sie in einer Datei des Dateityps notes.txtfmt zusammen zu laden, wie in der Vim-Dokumentation zu dot-separated filetypes beschrieben.

Erster Versuch ich gemacht Notes-Dokumentation folgende Lage sein, zusammen mit Txtfmt zu arbeiten und die Erstellung der Datei

$/vim/nach/ftplugin/notes.vim

mit dem Inhalt.:

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

Wie in this Diskussion erklärte dieser Ansatz nicht funktioniert, eine Endlosschleife zu schaffen. Als nächstes, wie durch bpstahlman in der genannten Post vorgeschlagen, fügte ich meine .vimrc den folgenden automatischen Befehl:

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

Jetzt, so schien es, dass die Arbeit sein könnte, dass es einen ‚notes.txtfmt‘ Datei des Typen erklärt in Vim-Statusleiste, sofort nach dem Öffnen eines neuen: Hinweis-Puffer.
Die schlechte Nachricht: txtfmt Plugin lädt nicht, kein gemappter Befehl funktioniert.

Das komische: wieder tun :setlocal ft=notes.txtfmt (was angeblich schon durch den vorgeschlagenen Autokommandanten getan wurde) wird alles richtig geladen.

Mit anderen Worten, es sieht so aus, als ob der Autokommand in dem Fall den Dateityp ändert, aber nicht das txtfmt Plugin lädt, welches nur den Befehl filetype wiederholt.

Irgendwelche Vorschläge dazu?

Dank

Antwort

2

Wenn die Notes-Plugin hatte eine Datei des Typen Erkennung (anscheinend hat es nicht, und der Dateityp nur durch die Befehle das Plugin bietet gesetzt ist), würde ich überschreiben, dass zu

:au BufNewFile,BufRead *.note setf notes.txtfmt 

in Ihrem Fall stattdessen eine Verbindung Datei des Typs die Verwendung, würde ich einfach seine Auswirkungen in ~/.vim/after/ftplugin/notes.vim emulieren:

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

Ich habe es nicht getestet, aber es ist einfacher und daher hoffentlich robuster als Ihre aktuelle Lösung des Einhängens in das FileType Ereignis.

+0

Es funktioniert Ingo. Ich weiß nicht genau warum, aber es funktioniert. Aber es funktioniert nur zusammen mit 'au FileType * wenn erweitern (" ") ==" Notizen "| setlocal ft = Notizen.txtfmt | endif ' in .vimrc. Und das weiß ich nicht warum. Danke. – Daniele