我有一个多文件项目,我使用Cmake构建系统.我已经映射:make到一个键,因为我需要经常编译它.问题是我需要经常运行生成的可执行文件.然而打字:!./variable_program_name非常繁琐.
有没有办法检测/获取生成的可执行文件名?
建议的方法是通过Makefile中的单独目标,以便例如:make只触发构建,并:make run触发(构建和)运行可执行文件.毕竟,Makefile最了解它正在构建什么,所以决定如何运行构建工件(也许还有传递的参数)最好委托给它.
要从Makefile"返回"可执行文件,将:make解析输出并填充quickfix列表.您可以定义一个自定义映射(对于qf为此类窗口设置的文件类型),它从当前的quickfix行解析可执行文件名,甚至用于getqflist()解析整个输出.这要求您的Makefile以可检测的方式打印出可执行文件名(和路径).
如果您甚至无法从输出中可靠地获取可执行文件名,但知道生成可执行文件的目录,则可以glob()在运行之前创建文件列表(with ):make,然后再运行,然后将两个列表进行比较获取可执行文件名称.如果您不想从Vim中删除以前的可执行文件,则文件时检查(getftime())可能有所帮助.