如何在haml文件中调试损坏的vim completefunc?

时间:2009-12-09 18:45:57

标签: ruby-on-rails vim haml

我正在使用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

2 个答案:

答案 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'