我所遵循的例子来自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?
答案 0 :(得分:2)
就我而言,vim似乎没有在自定义运行时路径中的ftdetect
和ftplugin
目录下获取文件。我尝试将目录放在.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脚本加载正常。