假设我将.txt文件加载到Vim中。然后我想更改filetype=html
,但我还想加载一个关联的ftplugin。我怎么能这样做?
我尝试了类似::set filetype plugin on
和:set filtype plugin_name
以及:filetype plugin_name
等等,但我似乎无法手动加载ftplugin。有什么建议?
我已尝试:filetype=html
然后:filetype plugin on
和其他组合无效。
编辑:我无法用任何答案“完全”解决这个问题(但它可能是我配置中的个别内容)。然而,皮埃尔的答案非常好,所以我给了他绿色的复选标记。
答案 0 :(得分:8)
我很确定当您使用:set ft=X
切换文件的类型时,它会自动加载.vim / ftplugin文件夹中的相关插件。例如。 :set ft=html
将加载.vim / ftplugin / html.vim,您可以在其中加载任何关联的插件。但是,由于设置新文件类型不会触发这些事件,因此不会加载与html文件关联的BufEnter
和BufNew
插件加载。因此,如果.vimrc中的html特定插件加载了BufNew
或BufEnter
,您可能希望将它们放在.vim / ftpluging / html.vim文件中。
您始终可以在文本文件中添加更改文件类型的模式行。例如。 <!-- vim: ft=html -->
。
答案 1 :(得分:3)
:filetype on
:set filetype=html
答案 2 :(得分:3)
即使我打开了一个Perl文件,ftplugins也没有加载相同的情况。事实证明我的Vim副本(来自Git for Windows
)未附带ftplugin.vim
和ftplugof.vim
以下是我如何实现这一目标:
:filetype
:scriptnames
ftplugin\
的脚本。ftplugin.vim
。检查Vim目录({git-path}/share/vim/vim{version}/
)是否包含ftplugin.vim
和ftplugof.vim
:filetype plugin on
和:filetype plugin off
为了解决这个问题,我抓住了Vim runtime files中丢失的文件并将其复制到应该去的地方。
答案 3 :(得分:1)
当您更改文件类型时,Vim会自动加载正确的插件
:set ft=python
您可以在详细模式下启动vim:
vim -V
这将显示vim正在执行的内容。如果您打开文件并手动设置文件类型,vim将显示它是否正在加载正确的插件。
答案 4 :(得分:0)
:f something.html
:w
:e