如何在vim中映射编译和执行



我想要一个命令来编译和执行我在vim中编辑的C文件。我该怎么做?以下内容不起作用,因为文件名中有.c。

:map <leader>m :!make && ./%

如果我使用:!make && ./filename,我不知道如何在输出中移动,所以我也想看到一个具有垂直拆分窗口的解决方案。

:map <leader>m :!make && ./%中的shell转义调用make程序,该程序搜索要处理的Makefile。Makefile中的配方描述了如何编译程序,以及如何命名最终可执行文件(如果省略,则默认为a.out)。虽然您正在编辑的文件名(由%引用)可能与您想要的可执行文件名具有相同的前缀,但这并不能保证。

要在拆分窗口中编译、运行和编辑程序的输出,请编写编译后自动运行的Makefile配方,并将可执行文件的输出重定向到临时文件中,例如:

.PHONY: all
all: executablename runlog
executablename: executablename.c
        cc -o executablename executablename.c
runlog: executablename
        ./executablename >runlog

请记住,需要将8个缩进空间替换为一个选项卡才能使Makefile发挥作用。

在映射中引用临时文件::map <leader>m :!make^M:sp runlog^M,其中^M源于键入Ctrl+Return

最新更新