Vim E194:没有替代文件名来代替'#'

时间:2014-06-04 08:14:43

标签: vim ctrlp

我正在使用ctrlp.vim插件,它本质上是一个文件查找器。我按照这里提到的安装步骤进行了操作:

http://kien.github.io/ctrlp.vim/#installation(使用git)

我的插件工作正常并且正如预期的那样但是在启动vim时出现以下错误:

Error detected while processing FuncUndefined Auto commands for "*":
E194: No alternate file name to substitute for '#': runtime autoload/ctrlp#utils#cachedir.vim
Press ENTER or type command to continue

从我的vimrc中删除set runtimepath^=~/.vim/bundle/ctrlp.vim后,错误就消失了,但很明显,即使我的插件停止工作也是不可取的。

请帮忙。

2 个答案:

答案 0 :(得分:2)

该命令的格式错误:而不是

runtime autoload/ctrlp#utils#cachedir.vim

应该是

runtime autoload/ctrlp/utils/cachedir.vim

调用自动加载功能时使用#分隔符,但:runtime需要带路径分隔符的路径。在那里,#%等特殊标识符生效,导致错误。


要解决这个问题,请找出发出错误命令的位置。

:verbose autocmd FuncUndefined

是一个好的开始。

答案 1 :(得分:0)

尝试将 [No Name] 缓冲区写入包含#include的文件名时,Windows版本的GVim 8.1出现了相同的错误。在文件名中的每个\前面放置一个#可以解决此问题。

我认为这与Windows使用反斜杠分隔文件路径中的文件夹的约定相抵触,但是没有。