dav*_*uda 6 vim autocomplete vim-plugin
现在我正在使用vim中的自动完成功能,我已经选择了supertab来处理我的完成情况.虽然它的运行非常顺利(我认为)正如它的设计,我想知道如何改变一些东西.
首先,我在Ubuntu 12.04LTS上运行7.3.429
set completeopt=menuone,preview,longest
Run Code Online (Sandbox Code Playgroud)
所以我有supertab的bash类型自动完成,默认完成.
假设我的文件中有以下内容:
aaabbbcccddd
aaabbccddeef
aaabbcddeeff
Run Code Online (Sandbox Code Playgroud)
如果我输入aa并点击Tab,则vim意识到这aaabb是匹配中最长的常见字符串,因此它插入aaabb并显示包含三个选项的菜单.如果我确实想要其中一个选项,那么一切都很好.但也许我真的想要aaaaazzzzz,但没有意识到我还没有输入它.
是否有一个很好的方式来对vim说:"哦,我很抱歉!毕竟我并不是要完成任务!请假装我没有."
现在,对我来说明显的选择是:
如果我没有longest启用,那么我可以使用Ctrl+ E,它退出菜单而不插入任何其他内容.但是,由于最长时间打开,它会停止自动完成,但会保留输入的最长公共匹配.
当然必须有更好的方法来做到这一点.
在 vim 中有两种本地方法可以做到这一点。如果您知道该项目不在完成菜单中,则可以使用 的正确方法<c-y>。<c-y>接受当前匹配,如果您没有移动,但任何完成都会将您返回到仅插入的文本。(第二种方式)但是,如果您确实浏览了完成菜单,您可以继续移动,直到回到原始文本。
不过,我认为简单地接受最长的匹配并编辑该单词并不太难。您还可以通过将<c-g>u撤消块添加到<tab>映射中来分解撤消块。尽管这可能会比你想要的更打破历史。