[英]vim: is there a way to preprocess a file opened by copen
我正在尝试使用 errorformat 来缩短代码编译代码循环。 我的设置是这样的:
我的工作流程:
ssh remote_user@remote_host cd /media/psf/projects/my_proj/results; vcs <options_string> -f filelist.f
在上述工作流程的第 3 步中,我想使用 quickfix 来扫描日志文件。 我发现:cfile 可以加载文件。
但是,VM 上的编译器使用绝对路径写出文件路径:
/media/psf/projects/my_proj
当我尝试在 MacOS 上将其读入 vim 时,/media/psf/projects 不存在。 并且 vim 无法显示错误。
我可以预处理日志文件(替换所有文件夹路径),吐出中间日志文件并运行:cfile 的最佳方法是什么(vimscript?宏?)?
您问题的信噪比很低。 以下是我对您的问题的理解:
/media/psf/
和主机中的~/projects/foobar/
,/media/psf/
开头,/media/psf/
不存在,因此 Vim 无法跳转到错误,/media/psf/
转换为~/projects/foobar/
的方法。 以下解决方案假定从 VM 检索到的错误列表保存到共享目录根目录下名为errorfile
的文件中:
:cexpr readfile('~/projects/foobar/errorfile')->join("\n")->substitute('/media/psf/', '~/projects/foobar/', 'g')
参考:
:help :cexpr
:help readfile()
:help join()
:help substitute()
FWIW,告诉您的编译器将错误列表写入上述文件将允许您从工作流程中删除 SSH 步骤。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.