我正在使用rails.vim而且我喜欢如何在插入模式下使用 ctrl-x ctrl-u 来自动填充像{{这样的长方法名称1}}和distance_of_time_in_words
。但由于某些原因它在haml文件中不起作用,我似乎无法弄清楚什么是错的或如何解决它。
accepts_nested_attributes_for
表示自动填充正在使用:help i_CTRL-X_CTRL-U
。 haml文件说它的completefunc
(在erb和helper文件中它们是相同的,其中 ctrl-x ctrl-u 工作正常。)我找不到定义completefunc=syntaxcomplete#Complete
魔法的地方,但可能是与文件类型语法有关。我的syntaxcomplete#Complete
来自vim-haml,所以我尝试删除它,但问题仍然存在。
评论我的整个.vim/syntax/haml.vim
也没有帮助。我还能尝试什么?
更新:我搜索了我的vim配置文件,而.vimrc
中唯一与syntaxcomplete#Complete
做任何事情的地方看起来像这样:
autoload/rails.vim
答案 0 :(得分:0)
在名称中使用#的函数在自动加载脚本中定义:
可以自动加载的功能有一个名称 像这样:
:call filename#funcname()
当调用这样的函数时,它还没有定义,Vim将搜索 'runtimepath'中的“autoload”目录,用于调用的脚本文件 “filename.vim”。例如“〜/ .vim / autoload / filename.vim”。
请参阅:help autoload
。
答案 1 :(得分:0)
看起来您正在寻找的文件是vim的一部分:
$ find /usr/share/vim/ -iname "syntaxcomplete.vim"
/usr/share/vim/vim72/autoload/syntaxcomplete.vim
有一个vim.org page,其中包含最新版本的脚本。
如果要自定义完成,可以编写自己的完成功能。见:help complete-functions
您还可以使用 Ctrl + n 来使用vim的简单完成。它使用任何打开文件中的文本完成,但可以自定义。 (见:help 'complete'
)