2017-08-16 86 views
2

我很高興地在Mac Os Sierra上加載neovim,命令行版本中的NotesTxtfmt插件。Vim的'dot-separated'雙重文件類型時尚

兩者都很大程度上獨立工作,但沒有機會按照Vim有關點分隔文件類型的文檔將它們加載到filetype notes.txtfmt文件中。

我做了第一次嘗試以下說明文檔,能夠與Txtfmt共同努力,創建文件

$/VIM /後/文件類型插件/ notes.vim

與內容:

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

正如this討論說這個方法是行不通的,創建一個無限循環。 接下來,如bpstahlman中提到的建議後,我加入到我的.vimrc以下的自動命令:

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

現在,它似乎是可以合作的,因爲它宣稱在「notes.txtfmt」文件類型Vim狀態欄,在打開新的:Note緩衝區後立即打開。
壞消息:txtfmt插件不加載,沒有映射的命令正在工作。

有趣的是:再次做:setlocal ft=notes.txtfmt (這應該已經被建議的自動命令完成),一切都得到正確加載。

換句話說,在我看來,自動命令在改變文件類型的情況下工作,而不是在加載僅加載重複文件類型命令的txtfmt插件。

對此有何建議?

感謝

回答

2

如果Notes插件有文件類型檢測(顯然它已經沒有了,文件類型僅由插件提供的命令集),我會覆蓋,爲

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

在你的情況,而是採用了複合文件類型,我想簡單地模仿它的效果在~/.vim/after/ftplugin/notes.vim

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

我還沒有測試過它,但它更直接,因此希望比您當前使用的解決方案更加強大,以便與FileType事件掛鉤。

+0

它適用於Ingo。 我不知道爲什麼,但它的工作原理。 但是,它只能與 一起工作,'AU文件類型*如果擴大( 「」)== 「筆記」 | setlocal ft = notes.txtfmt | endif' in .vimrc。 而這或者我不知道爲什麼。 謝謝。 – Daniele