【发布时间】:2013-08-01 22:44:48
【问题描述】:
现在我正在使用 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 足够多的时间来回到我的初始状态。但如果有很多相似的词,尤其是长度不同的词,那就很烦人了。
- 按需要多次按退格键或其他一些天真的删除。但这些肯定是不必要的击键。
- 点击 Esc+u 可以撤消,但这会撤消我的整个单词(如果我快速键入的话,会撤消更多)。这是完全不能接受的。之后,我需要重新进入插入模式并重新输入。毛。
- 点击 Ctrl+U 撤消而不离开插入模式。但这也有去除过多的趋势。
- 按 Ctrl+W 删除最后一个单词。虽然我可以在不退出插入模式的情况下执行此操作,但我仍然需要重新输入。这是迄今为止我发现的最好的。
如果我没有启用longest,那么我可以使用Ctrl+E,它会退出菜单而不插入任何其他内容。但由于最长已开启,它会停止自动完成,但会留下最长的常见匹配项。
肯定有更好的方法来做到这一点。
【问题讨论】:
标签: vim autocomplete vim-plugin