我想捕获 Vim 命令 ( :sign place
) 的输出,使用 vim 模块在 Python 中编写脚本。
我可以使用 执行命令vim.command(...)
,但这不会返回命令的输出。我可以用 评估 vimL 命令vim.eval(...)
,但这仅适用于变量和函数,不适用于命令。
我可以捕获此命令的输出的唯一方法是重定向到寄存器,然后评估寄存器的内容:
vim.command('redir @a')
vim.command('silent sign place')
vim.command('redir END')
command_output = vim.eval('@a')
但这对于一个看似简单的任务来说似乎需要做很多工作。有没有更好的方法来做到这一点?
注意:这不是特定于示例命令的问题,sign place
它对任何命令都有效。