Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
进入参数列表时,如何避免vim omnicomplete菜单关闭?_Vim_Parameters_Omnicomplete - Fatal编程技术网

进入参数列表时,如何避免vim omnicomplete菜单关闭?

进入参数列表时,如何避免vim omnicomplete菜单关闭?,vim,parameters,omnicomplete,Vim,Parameters,Omnicomplete,我正在积极地使用它进行Python和C++开发,当我输入函数括号时,菜单总是关闭,这有点令人沮丧,因为通常是在我需要大部分帮助(参数的类型和顺序)的时候.Vim的全方位完成功能与IDE中的Intellisense不完全一样;它有助于完成标识符或函数名,但没有函数参数及其类型的概念。这意味着:它可以帮助您键入frobnize,甚至可以显示函数原型frobnize(Foo,Bar),但不能帮助您完成函数参数。为此,完成函数需要考虑完整的底层语法和先前的上下文,而大多数上下文都没有。 某些完成提供的唯

我正在积极地使用它进行
Python
C++
开发,当我输入函数括号时,菜单总是关闭,这有点令人沮丧,因为通常是在我需要大部分帮助(参数的类型和顺序)的时候.

Vim的全方位完成功能与IDE中的Intellisense不完全一样;它有助于完成标识符或函数名,但没有函数参数及其类型的概念。这意味着:它可以帮助您键入
frobnize
,甚至可以显示函数原型
frobnize(Foo,Bar)
,但不能帮助您完成函数参数。为此,完成函数需要考虑完整的底层语法和先前的上下文,而大多数上下文都没有。
某些完成提供的唯一帮助是在预览窗口中显示函数原型(默认设置为
:set completeopt+=preview
)。预览窗口在完成后保持打开状态,因此您仍然可以看到最后一个函数原型。但是,并不是所有的补全都提供此信息。

您使用的插件是什么?对于C++:clang_complete。Python:pydoc.vim和rope-vim。据我所知,在每种语言中都会发生。我不明白,vim应该很容易保持菜单打开,直到我到达相应的
。不幸的是,对于vim来说,完成是在您完成
frobnize
时完成的,没有活动完成,就没有菜单。挑战是在整个函数上编写一个类似IDE的完成函数,但这需要一个更智能的完成函数。@Profpatsch如果很容易添加,那么源代码是可用的。:)您还可以查看
:help CursorHold example
,了解另一种保持预览窗口跟踪您正在做的事情的方法。我自己的工作流程通常需要大量的
]
来拆分窗口并查看我不记得的函数原型。好吧,我想只要函数没有五到六个参数我就可以记住。另外,我有预览窗口,即使它不是那么高效(必须看屏幕顶部)。