如何调试在HAML文件坏了VIM completefunc?
-
18-09-2019 - |
题
我使用 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和辅助文件,其中<大骨节病> 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'
)