提问人:Pythonist 提问时间:11/17/2023 最后编辑:Pythonist 更新时间:11/17/2023 访问量:46
在 Vim 中使用 ls 命令填充快速修复窗口时出现虚假字符
Spurious characters when populating the quickfix windows with ls command in Vim
问:
我正在尝试在 Vim 中使用一个简单的自定义命令来使用外部命令填充快速修复窗口。目前只是想习惯这个工具。但是,当我运行时,我得到了烦人的额外字符:ls
:cexpr system("ls") | copen
|| file1
|| file2
顺便说一句,这不会“尊重”PWD,它只是列出主目录。这两个错误可能相关?
是什么将这些额外的字符放在快速修复列表中?
答:
3赞
Friedrich
11/17/2023
#1
Vim 本身把管道放在那里。它们分别是文件名和行号的分隔符,由选项解析。errorformat
这可以通过运行与默认值匹配的命令来轻松演示:errorformat
:cexpr system("echo foo.py:123:OMG an error")
这将导致以下 Quickfix 条目:
foo.py|123| OMG an error
因此,无论您打算对快速修复评估执行什么操作,您都应该按照 和 中所述相应地设置选项。对于使用 的简单示例,可能很难想出一个很有意义的例子。errorformat
:help errorformat
:help 'errorformat'
ls
errorformat
我不知道如何摆脱这两个管道。我建议和他们一起去使用它们。如果您真的想要一个没有文件名和行号的快速修复列表,您可能一开始就不需要快速修复。请考虑改用另一种(临时)缓冲区。有关详细信息,请参阅 和。:help 'buftype'
:help special-buffers
您可能还会发现有帮助。这个想法是定义一个(实际上,这可以是任何产生输出的程序)以及一个可以解析此输出的程序。:help write-compiler-plugin
makeprg
errorformat
我无法重现工作目录的任何问题。
评论
0赞
Pythonist
11/17/2023
确实,也许我使用了错误的工具。我真的不需要快速修复,我只是认为这是显示只读信息的临时缓冲区的方法。你说的其他类型的临时缓冲区是什么?总的来说,我希望有一种方法可以在不离开 Vim 的情况下可视化和查询我的系统(使用 SLURM)中的队列。
0赞
Pythonist
11/17/2023
例如,在键入 时使用 fugitive 的缓冲区。我怎么能做同样的事情?:G
1赞
Friedrich
11/17/2023
我用一些相关的帮助部分编辑了我的答案。逃犯的用途,这可能也适用于您。恐怕我不能对 SLURM 说太多,你可能会问一个新问题,这个问题更多的是关于你的问题,而不是你认为的解决方案可能是什么。看来我们被那个旧的 XY 问题咬了一口。:G
buftype=nowrite
评论