Vim Quickfix前缀为双条“||“--解释?

00jrzges  于 2022-11-11  发布在  其他
关注(0)|答案(2)|浏览(161)

我经常在Vim中使用Quickfix视图,其中的文本总是有一个前缀||
因此,例如,当我复制/粘贴到缓冲区外时,我会默认包含这些字符。
有没有办法禁用这个?我还没有运气找到任何文档或配置这个...

whlutmcx

whlutmcx1#

Quickfix缓冲区被用来解析特殊格式的字符串(如编译器消息)。这是在:h 'errorformat'选项的帮助下完成的。那些“条”是“文件名”、“行号”和“消息正文”之间的输出分隔符。
如果你在一行的开头只有“双条”,那么你要么是errorformat设置错误,要么是你误用了快速修复缓冲区。
如果你感兴趣的话,“Bars”在Vim的源代码(src/quickfix. c)中是硬编码的:

static int
qf_buf_add_line(buf_T *buf, linenr_T lnum, qfline_T *qfp, char_u *dirname)
{
    ...
    if (qfp->qf_module != NULL)
        ...
    if (len < IOSIZE - 1)
        IObuff[len++] = '|';
    if (qfp->qf_lnum > 0)
        ...
    if (len < IOSIZE - 2)
    {
        IObuff[len++] = '|';
        IObuff[len++] = ' ';
    }
    ...
}
kh212irz

kh212irz2#

现在可以自定义快速修复窗口的显示。
Vim引入了快速修复文本函数(:h qftf)。
它允许完全自定义快速修复窗口的渲染。文档中包含了一个示例,你也可以在nvim-bqf README中看到一个示例,尽管它是基于neovim/lua的。
您可以在:h quickfix-window-function中的vim文档中看到一个示例。
要实现一个通用的qftf(而不是像vim文档中那样是一个特定的qftf),您应该以类似于nvim-bqf自述文件的方式开始,也就是说,检查info参数quickfix字段是否为1,您应该显示getqflist中的项,否则显示getloclist中的项

相关问题