答案 0 :(得分:1)
您可以通过从:help popupmenu-completion
选项中删除menu[one]
来禁用弹出菜单('completeopt'
;它通常显示可用选项的子集)。然后,将第一个候选对象(或longest
公共部分)直接插入缓冲区,然后<C-n>
在该位置的候选对象之间循环。要删除当前建议的完成并返回到完成之前的原始状态,请按<C-e>
。
从技术上讲,这仍然是(如果只是暂时的)将候选者插入缓冲区,但是我认为它完全符合您的要求,并且是内置的。要显示文本而不插入文本,目前只有一种(相当粗糙的)解决方法,即使用:help conceal
功能来更改单个字符的外观(对于静态文本,通过\%l
匹配缓冲区中的确切位置和\%c
)通过matchadd()
转换为其他内容。但是,这仅在存在现有文本的情况下有效;在一行的末尾将不起作用。目前,vim_dev mailing list上正在讨论通用覆盖特征,但它还处于早期阶段。