VIM代码片段短语下拉菜单

VIM代码片段短语下拉菜单,vim,plugins,vim-plugin,Vim,Plugins,Vim Plugin,在VIM中有没有办法让按键调用下拉菜单(类似于代码完成),但列出文本文件中的文本行以供选择 我有一个宏列表,我想从中选择。例如 `ABX_ERR(“消息”,值) `添加_任务(名称任务); 等等 我想在一个下拉菜单中看到所有这些,我可以从中选择插入文件。Vim提供行完成(:h compl整行) 如果使用,可以在任何打开的缓冲区中完成行。因此,只需在后台打开要行完成的文件,然后使用打开一个菜单,选择与当前行以相同字符开头的匹配行。Vim提供行完成(:h compl整行) 如果使用,可以在任

在VIM中有没有办法让按键调用下拉菜单(类似于代码完成),但列出文本文件中的文本行以供选择

我有一个宏列表,我想从中选择。例如

  • `ABX_ERR(“消息”,值)
  • `添加_任务(名称任务); 等等

我想在一个下拉菜单中看到所有这些,我可以从中选择插入文件。

Vim提供行完成(
:h compl整行



如果使用
,可以在任何打开的缓冲区中完成行。因此,只需在后台打开要行完成的文件,然后使用
打开一个菜单,选择与当前行以相同字符开头的匹配行。

Vim提供行完成(
:h compl整行


如果使用
,可以在任何打开的缓冲区中完成行。因此,只需在后台打开要进行换行操作的文件,然后使用
打开一个菜单,选择与当前字符开头相同的匹配行。

换行操作(如@FDinoff所建议)有几个缺点:它会考虑所有打开的缓冲区,只有在新生产线开始时才能完工。一个代码片段插件可以做到这一点,但它有不同的语法和额外的、不必要的复杂性

该解决方案是一个自定义完成,例如,由my实现的完成。此插件提供指定文件或缓冲区中的行的高度可配置完成,由光标前面的关键字触发。

完整行完成(如@FDinoff所建议的)有几个缺点:它考虑所有打开的缓冲区,仅在新行开始时完成。一个代码片段插件可以做到这一点,但它有不同的语法和额外的、不必要的复杂性


该解决方案是一个自定义完成,例如,由my实现的完成。此插件提供指定文件或缓冲区中的行的高度可配置完成,由光标前面的关键字触发。

有没有办法指定要使用的特定文件?否则,它会显示我打开的所有窗口中的所有行,这非常令人难以理解。@user3719021我不这么认为。有没有办法指定要使用的特定文件?否则,它会显示我打开的所有窗口中的所有行,这是非常令人沮丧的。@user3719021我不这么认为。
Completing whole lines                                  compl-whole-line

                                                        i_CTRL-X_CTRL-L
CTRL-X CTRL-L           Search backwards for a line that starts with the
                        same characters as those in the current line before
                        the cursor.  Indent is ignored.  The matching line is
                        inserted in front of the cursor.
                        The 'complete' option is used to decide which buffers
                        are searched for a match.  Both loaded and unloaded
                        buffers are used.
        CTRL-L  or
        CTRL-P          Search backwards for next matching line.  This line
                        replaces the previous matching line.

        CTRL-N          Search forward for next matching line.  This line
                        replaces the previous matching line.

        CTRL-X CTRL-L   After expanding a line you can additionally get the
                        line next to it by typing CTRL-X CTRL-L again, unless
                        a double CTRL-X is used.  Only works for loaded
                        buffers.