我正在使用rails.vim,我喜欢您如何ctrl-x ctrl-u在插入模式下使用来自动完成长方法名称,例如distance_of_time_in_words
和accepts_nested_attributes_for
。但由于某种原因,它在 haml 文件中不起作用,我似乎无法弄清楚出了什么问题或如何解决它。
:help i_CTRL-X_CTRL-U
说自动完成正在使用completefunc
. haml 文件说它completefunc=syntaxcomplete#Complete
(在 erb 和 helper 文件中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