我使用ctags,taglist等在Vim中自动完成.但是,与Visual Studio intellisense或Eclipse自动完成相比,它非常有限.我想知道是否有可能将Vim调整为:
随时显示自动完成.或 - >键入.但只有在某些文本可能是变量之后(例如,避免在数字后显示自动完成).
显示函数参数(键入时).
当有些人删除所有字符后停止删除自动完成列表.或 - >:当我输入变量名称时,然后按.或者 - >要搜索某个成员,我经常要删除我输入的所有字符.或 - >,但这使得Vim隐藏了自动完成列表.除非我按下Esc,否则我想让它保持可见.
显示相关的自动完成:当我键入变量并按^ X ^ O时,它通常会显示ctags文件中的所有标记.我想让它只显示与变量相关的标签.
谢谢您的帮助.
编辑:有些人投票支持这个问题,但似乎没有人知道答案.所以只想提一下,你不必提供完整的答案; 对上述任何一点的部分答案也会很好.
要在按下某个键时使vim触发某种行为,您需要将该键映射到一个函数.
例如,要映射键.以在INSERT模式下调用某种类型的完成,您需要执行以下操作:
:inoremap <expr> <buffer> . MyFunction()
Run Code Online (Sandbox Code Playgroud)
然后该函数需要评估调用它的上下文并向用户提供适当的答案.
编辑:这是clang complete@honk提到的工作方式的基础.
我不确定你是否可以自定义omnifunc的行为以满足你的需求,但根据我的经验,我从未走得太远.正如@Mikhail所说,你需要跟踪在某种程度上解释甚至运行代码的事情.
我每天都使用vim,而且我不知道任何现有的脚本可能会这样做.此操作需要了解类并跟踪变量.someObject->意味着VIM会知道变量someObject是什么类,然后能够搜索该类中的方法/变量.
为vim编写脚本相对容易,但就像你评论过的那样 - 还没有人回答这个问题.从我这里投票.
| 归档时间: |
|
| 查看次数: |
19090 次 |
| 最近记录: |