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

use*_*545 4 vim

我下面的例子来自 The VimL Primer Chapter 4 一书。

ftdetect目录中,我有以下行:

autocmd BufRead,BufNewFile *.mpdv set filetype=mpdv
Run Code Online (Sandbox Code Playgroud)

在名为 mpdv.vim 的文件中

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

filetype plugin on
Run Code Online (Sandbox Code Playgroud)

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

set exrc
Run Code Online (Sandbox Code Playgroud)

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

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

set runtimepath+=path/to/my/plugin
Run Code Online (Sandbox Code Playgroud)

当我打开一个 mpdv 文件时,我能做些什么来调试为什么 vim 没有加载我的 autocmd?

Sam*_*mar 7

我注意到的一件事(这似乎也与您的情况有关)是,如果您在运行时路径上添加新路径,则应该filetype plugin on在更新运行时路径后完成。

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

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

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


zar*_*rak 4

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

\n\n
.vim\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 autoload\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 mpc.vim\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ftdetect\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 mpdv.vim\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ftplugin\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 mpdv.vim\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 plugin\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 mpc.vim\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在脚本正在ftdetect运行,正如我运行时可以看到的:scriptnames

\n\n
1: /usr/share/vim/vimrc                                                                             \n2: /usr/share/vim/vim74/debian.vim\n3: ~/.vimrc\n4: /usr/share/vim/vim74/filetype.vim\n5: ~/.vim/ftdetect/mpdv.vim\n6: /usr/share/vim/vim74/ftplugin.vim\n7: /usr/share/vim/vim74/syntax/syntax.vim\n8: /usr/share/vim/vim74/syntax/synload.vim\n9: /usr/share/vim/vim74/syntax/syncolor.vim\n10: ~/.vim/plugin/mpc.vim\n
Run Code Online (Sandbox Code Playgroud)\n