没有让Vim在ftdetect自定义插件项目中自动加载文件

时间:2015-10-24 09:13:18

标签: vim

我所遵循的例子来自The VimL Primer Chap 4。

ftdetect目录中,我有以下一行:

autocmd BufRead,BufNewFile *.mpdv set filetype=mpdv

在名为mpdv.vim

的文件中

但是,当我打开mpdv文件时,不会执行此命令。 在.vimrc我有:

filetype plugin on

加载插件的方式如下: 在〜/ .vimrc我有:

set exrc

这会强制vim加载本地.vimrc文件

然后在我的项目插件文件夹中,我有了以下.vimrc

set runtimepath+=path/to/my/plugin

当我打开mpdv文件时,我可以做什么调试为什么vim没有加载我的autocmd?

2 个答案:

答案 0 :(得分:2)

就我而言,vim似乎没有在自定义运行时路径中的ftdetectftplugin目录下获取文件。我尝试将目录放在.vim文件夹下:

.vim
├── autoload
│   └── mpc.vim
├── ftdetect
│   └── mpdv.vim
├── ftplugin
│   └── mpdv.vim
└── plugin
    └── mpc.vim

现在ftdetect下的脚本会运行,我可以看到:scriptnames

1: /usr/share/vim/vimrc                                                                             
2: /usr/share/vim/vim74/debian.vim
3: ~/.vimrc
4: /usr/share/vim/vim74/filetype.vim
5: ~/.vim/ftdetect/mpdv.vim
6: /usr/share/vim/vim74/ftplugin.vim
7: /usr/share/vim/vim74/syntax/syntax.vim
8: /usr/share/vim/vim74/syntax/synload.vim
9: /usr/share/vim/vim74/syntax/syncolor.vim
10: ~/.vim/plugin/mpc.vim

答案 1 :(得分:2)

我注意到的一件事(也似乎是对你的案例的处理)是,如果你在runtimepath上添加新路径,你应该在更新runtimepath后完成filetype plugin on

例如,使用以下vimrc,它可以正常工作:

set runtimepath+=/home/techgaun/fun/vim/mpc filetype plugin indent on

并且,如果你运行:scriptnames,你应该看到你的mpc插件目录中的ftdetect脚本加载正常。