如何在vim中有效撤消自动完成
现在我正在使用
vim中的自动完成功能,我已经确定了
supertab来处理我的完成情况.虽然它的运行非常顺利(我认为)正如它的设计,我想知道如何改变一些东西.
首先,我在Ubuntu 12.04LTS上运行7.3.429 set completeopt=menuone,preview,longest 所以我有supertab的bash类型自动完成,默认完成. 假设我的文件中有以下内容: aaabbbcccddd aaabbccddeef aaabbcddeeff 如果我输入aa并点击Tab,那么vim意识到aaabb是匹配中最长的常用字符串,因此它会插入aaabb并显示包含三个选项的菜单.如果我确实想要其中一个选项,那么一切都很好.但也许我真的想要aaaaazzzzz,但没有意识到我还没有输入它. 是否有一个很好的方式来对vim说:“哦,我很抱歉!毕竟我并不是要完成任务!请假装我没有.” 现在,对我来说明显的选择是: >点击Tab或Shift Tab足够的时间回到我的初始.但是如果有很多相似的词,特别是不同的长度,这很烦人. 如果我没有启用最长时间,那么我可以使用Ctrl E,退出菜单而不插入任何其他内容.但是,由于最长时间打开,它会停止自动完成,但会保留输入的最长公共匹配. 当然必须有更好的方法来做到这一点. 解决方法
在vim中有两种本地方法可以做到这一点.如果您知道该项目不在完成菜单中的正确方式,您可以使用< c-y>. c为C-Y GT;接受当前匹配,如果您没有移动,则任何完成将仅返回您插入的文本. (第二种方式)但是,如果您确实在完成菜单中移动,则可以移动直至返回原始文本.
但是我想,简单地接受最长的匹配并编辑单词并不难.您还可以使用< c-g> u将撤消块拆分为< tab>映射.虽然这可能会超过你想要的历史. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |