首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vim:制造自动完成智能机

Vim:制造自动完成智能机
EN

Stack Overflow用户
提问于 2011-01-03 09:34:45
回答 7查看 23.1K关注 0票数 75

我使用标签,taglist等,有自动完成在Vim。然而,与或Eclipse自动完成相比,它是非常有限的。我想知道是否可以将Vim调到:

  1. 随时显示自动完成。或者->被输入。但只有在一些可能是变量的文本之后(例如,避免在数字之后显示自动完成)。
  2. 当(输入)时显示函数参数。
  3. 当一些人删除之后的所有字符时,停止删除自动完成列表。或->:当我输入变量名时,然后按下。或->搜索某个成员时,我经常要删除我在后面键入的所有字符。或者->,但是这使得Vim隐藏了自动完成列表。我想保持它的可见,除非我按Esc。
  4. 显示相关的自动完成:当我键入一个变量并按^X ^O时,它通常会显示ctag文件中的所有标记。我想让它只显示与变量相关的标签。

谢谢你的帮助。

编辑:有些人投票赞成这个问题,但似乎没有人知道答案。因此,我只想提一提,你不必提供完整的答案,对上述任何一点的部分答案也会很好。

EN

回答 7

Stack Overflow用户

发布于 2011-01-03 15:50:36

AutoComplPop是你所需要的。

票数 21
EN

Stack Overflow用户

发布于 2011-01-03 15:30:39

对于(1)当使用C++或C时,clang complete是一个非常好的选择

票数 15
EN

Stack Overflow用户

发布于 2011-01-03 15:41:27

要使vim在按下键时触发特定行为,您需要将键映射到函数。

例如,要映射键.以调用某种类型的完成,在INSERT模式下需要这样做:

代码语言:javascript
运行
复制
:inoremap <expr> <buffer> . MyFunction()

然后,函数需要评估调用它的上下文,并向用户提供一个适当的答案。

编辑:这是@honk提到的clang complete如何工作的基础。

我不确定你是否可以定制杂耍的行为来满足你的需求,但根据我的经验,我从来没有做过太多的事情。正如@Mikhail说的那样,您需要跟踪实际情况,这意味着在某种程度上解释甚至运行代码。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4583394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档