我使用 rails.vim ,我爱你如何使用<大骨节病> CTRL-X CTRL-U 在插入模式自动完成像distance_of_time_in_wordsaccepts_nested_attributes_for长方法名。但由于某些原因,它不以HAML文件的工作,我似乎无法找出什么是错的或如何解决它。

:help i_CTRL-X_CTRL-U说,自动完成使用completefunc。引入haml文件称,其completefunc=syntaxcomplete#Complete(和它的同在ERB和辅助文件,其中<大骨节病> CTRL-X CTRL-U 工作正常。)我找不到syntaxcomplete#Complete魔术哪里被定义,但据推测它是与文件类型的语法。我.vim/syntax/haml.vim来自 VIM-HAML ,所以我试图消除它,但问题仍然存在。 谈到了我的整个.vimrc没有帮助。我还能尝试一下呢?

更新:我搜索我的vim的配置文件和看起来像它做与syntaxcomplete#Complete什么是autoload/rails.vim,看起来像这样唯一的地方:

function! s:resetomnicomplete()
  if exists("+completefunc") && &completefunc == 'syntaxcomplete#Complete'
    if exists("g:loaded_syntax_completion")
      " Ugly but necessary, until we have our own completion
      unlet g:loaded_syntax_completion
      silent! delfunction syntaxcomplete#Complete
    endif
  endif
endfunction
有帮助吗?

解决方案

与#在名称的功能以自动加载脚本中定义:

  

这可以自动载入的函数的名称   像这样:点击       :调用的文件名#funcname的()点击   这样的函数被调用,它没有定义,Vim会搜索   在“runtimepath”的“自动加载”目录中称为脚本文件   “filename.vim”。例如, “〜/的.vim /自动加载/ filename.vim”。

请参阅:help autoload

其他提示

看起来你要找的文件是VIM的一部分:

$ find /usr/share/vim/ -iname "syntaxcomplete.vim"
/usr/share/vim/vim72/autoload/syntaxcomplete.vim

有一个 vim.org页面的最新版本脚本。

如果你想定制完成后,你可以只写自己完成的功能。见:help complete-functions

您也可以使用<大骨节病>控制 + <大骨节病>名词使用vim的简单的完成。它完成从任何打开的文件的文本,但可以定制。 (参见:help 'complete'

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top