Plugins 如何在Vim中启动后手动加载ftplugin?
假设我将一个.txt文件加载到Vim中。然后我想更改Plugins 如何在Vim中启动后手动加载ftplugin?,plugins,vim,ftplugin,Plugins,Vim,Ftplugin,假设我将一个.txt文件加载到Vim中。然后我想更改filetype=html,但我还想加载一个相关的ftplugin。我该怎么做 我试过这样的方法::打开和:打开filtype plugin\u name和:打开文件类型plugin\u name等等,但我似乎无法手动加载ftplugin。有什么建议吗 我尝试了:filetype=html和:filetype-plugin-on以及其他组合,但都没有成功 编辑:我不能用任何答案“完全”解决这个问题(但这可能是我的个人配置)。然而,皮埃尔的回答非
filetype=html
,但我还想加载一个相关的ftplugin。我该怎么做
我试过这样的方法::打开和:打开filtype plugin\u name
和:打开文件类型plugin\u name
等等,但我似乎无法手动加载ftplugin。有什么建议吗
我尝试了:filetype=html
和:filetype-plugin-on
以及其他组合,但都没有成功
编辑:我不能用任何答案“完全”解决这个问题(但这可能是我的个人配置)。然而,皮埃尔的回答非常好,所以我给了他绿色的复选标记 我非常确定,当您使用:set ft=X
切换文件类型时,它将自动加载.vim/ftplugin文件夹中的相关插件。例如,:设置ft=html
将加载.vim/ftplugin/html.vim,您将在其中加载任何相关插件。但是,不会加载与html文件关联的BufEnter
和BufNew
插件加载,因为设置新文件类型不会触发这些事件。因此,如果在.vimrc中有特定于html的插件,这些插件加载了BufNew
或BufEnter
,那么您可能需要将它们放在.vim/ftpluging/html.vim文件中
:f something.html
:w
:e
您可以始终向文本文件添加一个更改文件类型的modeline。例如,当您更改文件类型时,Vim会自动加载正确的插件
:set ft=python
您可以在详细模式下启动vim:
vim -V
这将向您显示vim正在执行什么。如果您打开一个文件并手动设置文件类型,vim将显示它是否加载了正确的插件。只是遇到了相同的情况,即ftplugins没有加载,即使我打开了一个Perl文件。原来我的Vim副本(来自Windows的Git
)没有附带ftplugin.Vim
和ftplugof.Vim
以下是我如何实现这一目标的:
:文件类型
- 检查文件类型插件是否确实已打开。
:脚本名
- 打印源脚本列表,发现
ftplugin\
中没有源脚本
- 当时我没有意识到这一点,但我应该注意到我没有在那里看到
ftplugin.vim
。
检查Vim目录({git path}/share/Vim/Vim{version}/
)是否具有ftplugin.Vim
和ftplugof.Vim
- 当您执行
:filetype plugin on
和:filetype plugin off
为了解决这个问题,我从中抓取了丢失的文件并复制到它应该去的地方。对于snipMate插件,我特别遇到了这个问题,它的一个脚本位于~/.vim/ftplugin/-我使用的是全文本firefox插件,它以.txt文件的形式打开网页。我必须这样做,因为我正在使用CMS。无法加载的确切文件是:~/.vim/ftplugin/html\u snip\u helper.vim(snipMate使用它来关闭html标记,例如键入r并点击TAB创建
),ftplugin文件夹中的脚本必须具有文件类型的名称,例如python.vim、ruby.vim、html.vim。这些在filetype.vim中定义。我猜html_snip_header.vim是由snipMate插件加载的,该插件加载在插件目录中,对吗?在ftplugin下添加一个html.vim文件,该文件直接加载html\u snip\u header.vim,它应该具有相同的效果。您可以随时向文本文件添加一个modeline,以更改状态,例如
。感谢您提供的提示!当我开始工作的时候,我会努力的;)对不起,是的,我试过了,但没用。我认为皮埃尔在他的帖子下面的评论中有一个观点;我将尝试放置一个html.vim来获取另一个ftplugin的源代码。我已经安装了snipMate。下面是我的一系列命令:vi a.txt:f a.cpp:w:e然后我输入for并按,它将插入for循环,如文档所示。也许你会再试一次?当您这样做时:e vim执行的操作顺序与以“vi”打开文件时完全相同,这涉及加载所有必要的插件。snipMate本身也可以工作(很抱歉有这么大的误解),但特别是对于.html文件,它调用位于~/.vim/ftplugin中的一个小帮助脚本…这就是我遇到的问题。这个特定的脚本除了关闭任何本质上是单一的html标记外,什么都不添加,例如
。文件类型有三个设置:检测、插件加载和缩进filetype on将仅设置检测,请尝试“:filetype plugin on”或“:filetype plugin indent on”。
vim -V