如何在Vim启动后手动加载ftplugin?

时间:2009-12-28 17:28:48

标签: plugins vim ftplugin

假设我将.txt文件加载到Vim中。然后我想更改filetype=html,但我还想加载一个关联的ftplugin。我怎么能这样做?

我尝试了类似::set filetype plugin on:set filtype plugin_name以及:filetype plugin_name等等,但我似乎无法手动加载ftplugin。有什么建议?

我已尝试:filetype=html然后:filetype plugin on和其他组合无效。

编辑:我无法用任何答案“完全”解决这个问题(但它可能是我配置中的个别内容)。然而,皮埃尔的答案非常好,所以我给了他绿色的复选标记。

5 个答案:

答案 0 :(得分:8)

我很确定当您使用:set ft=X切换文件的类型时,它会自动加载.vim / ftplugin文件夹中的相关插件。例如。 :set ft=html将加载.vim / ftplugin / html.vim,您可以在其中加载任何关联的插件。但是,由于设置新文件类型不会触发这些事件,因此不会加载与html文件关联的BufEnterBufNew插件加载。因此,如果.vimrc中的html特定插件加载了BufNewBufEnter,您可能希望将它们放在.vim / ftpluging / html.vim文件中。

您始终可以在文本文件中添加更改文件类型的模式行。例如。 <!-- vim: ft=html -->

答案 1 :(得分:3)

:filetype on
:set filetype=html

答案 2 :(得分:3)

即使我打开了一个Perl文件,ftplugins也没有加载相同的情况。事实证明我的Vim副本(来自Git for Windows)未附带ftplugin.vimftplugof.vim

以下是我如何实现这一目标:

  1. :filetype

    • 检查filetype插件是否确实已打开。

  2. :scriptnames

    • 打印源脚本列表,发现没有来自ftplugin\的脚本。
    • 当时我没有意识到,但我应该注意到我没有看到ftplugin.vim

  3. 检查Vim目录({git-path}/share/vim/vim{version}/)是否包含ftplugin.vimftplugof.vim

    • 执行:filetype plugin on:filetype plugin off
    • 时会获取这些文件
  4. 为了解决这个问题,我抓住了Vim runtime files中丢失的文件并将其复制到应该去的地方。

答案 3 :(得分:1)

当您更改文件类型时,Vim会自动加载正确的插件

:set ft=python

您可以在详细模式下启动vim:

vim -V

这将显示vim正在执行的内容。如果您打开文件并手动设置文件类型,vim将显示它是否正在加载正确的插件。

答案 4 :(得分:0)

:f something.html
:w
:e