2013-02-20 69 views
1

我正在积极地将它用于PythonC++的开发,当我输入函数括号时,菜单始终关闭,因为这通常是我需要大部分帮助(参数类型和顺序)时的一种令人沮丧的事情。如何避免在输入参数列表时关闭vim omnicomplete菜单?

+0

你使用什么插件? – glts 2013-02-20 00:22:24

+0

对于C++:clang_complete。 Python:pydoc.vim和rope-vim。就我所知,每种语言都会发生。 – Profpatsch 2013-02-20 00:30:43

回答

2

Vim的omni completion在IDE中不能正常工作,就像Intellisense;它有助于完成标识符或函数名称,但没有函数参数及其类型的概念。这意味着:它可以帮助你打字frobnize,甚至可以显示函数原型frobnize(Foo, Bar),但不能帮你完成函数参数。为此,完成函数需要考虑完整的底层语法和前一个上下文,而大多数情况下则不这样做。

一些完成提供的唯一帮助是函数原型显示在预览窗口中(:set completeopt+=preview,这是默认值)。预览窗口在完成后保持打开状态,因此您仍然可以看到最后一个函数原型。但是,并非所有完成都提供此信息。

+0

我不明白,vim应该很容易保持菜单打开,直到我到达相应的''''。 – Profpatsch 2013-02-20 10:28:09

+0

不幸的是,对于Vim来说,完成是在完成'frobnize'时完成的,没有主动完成,没有菜单。面临的挑战是在整个函数上编写一个类似于IDE的完成,但这需要更智能的完成功能。 – 2013-02-20 10:53:05

+0

@Profpatsch源代码可用,如果它很容易添加。 :)你也可以查看':help CursorHold-example'来了解另一种方法,让预览窗口跟踪你正在做什么。我自己的工作流通常只需要很多']来分割窗口并查看我不记得的函数原型。 – 2013-02-20 18:53:10