我下面的例子是从书中的VimL入门第4章。
在ftdetect
目录中,我有以下行:
autocmd BufRead,BufNewFile *.mpdv set filetype=mpdv
在名为mpdv.Vim的文件中
但是,当我打开mpdv文件时,不会执行此命令。在.vimrc中,我有:
filetype plugin on
我加载插件的方式如下:在~/.vimrc中,我有:
set exrc
这将强制Vim加载本地.vimrc文件
然后在我的projects pluginfolder中,我有以下文件:
set runtimepath+=path/to/my/plugin
当我打开一个mpdv文件时,为什么Vim没有加载我的autocmd?
3条答案
按热度按时间t1qtbnec1#
我注意到的一件事(这似乎也是你的情况)是,如果你在运行时路径上添加新的路径,你应该在更新运行时路径之后完成
filetype plugin on
。例如,使用以下vimrc,它可以正常工作:
而且,如果你运行
:scriptnames
,你应该看到ftdetect脚本从你的mpc插件目录中加载好了。kkih6yb82#
在我的例子中,Vim似乎没有在自定义运行时路径的
ftdetect
和ftplugin
目录下获取文件。我试着把目录放在我的.vim
文件夹下:现在,
ftdetect
下的脚本运行,正如我运行:scriptnames
时所看到的:7tofc5zh3#
如果你使用Vim的原生
:packadd
功能,请注意:h packadd
的以下内容:因此,请确保将任何
packadd
调用放在syntax enable
或filetype plugin indent on
之前:这类似于在手动修改
runtimepath
后启用filetype
。