在vim中将自动完成匹配显示为预览文本

时间:2018-12-11 19:33:22

标签: vim autocomplete

Vim本身或插件可以在线显示自动完成选项吗?example

如果没有办法在vim中显示文本而不将其插入缓冲区?

1 个答案:

答案 0 :(得分:1)

您可以通过从:help popupmenu-completion选项中删除menu[one]来禁用弹出菜单('completeopt';它通常显示可用选项的子集)。然后,将第一个候选对象(或longest公共部分)直接插入缓冲区,然后<C-n>在该位置的候选对象之间循环。要删除当前建议的完成并返回到完成之前的原始状态,请按<C-e>

从技术上讲,这仍然是(如果只是暂时的)将候选者插入缓冲区,但是我认为它完全符合您的要求,并且是内置的。要显示文本而不插入文本,目前只有一种(相当粗糙的)解决方法,即使用:help conceal功能来更改单个字符的外观(对于静态文本,通过\%l匹配缓冲区中的确切位置和\%c)通过matchadd()转换为其他内容。但是,这仅在存在现有文本的情况下有效;在一行的末尾将不起作用。目前,vim_dev mailing list上正在讨论通用覆盖特征,但它还处于早期阶段。