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

时间:2016-03-31 08:48:42

标签: compilation vi

我想要一个命令来编译和执行我在vim中编辑的C文件。我该怎么做?由于文件名中的.c,以下内容无效。

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

如果我使用:!make && ./filename我不知道如何浏览输出,那么我也希望看到一个带垂直分割窗口的解决方案。

1 个答案:

答案 0 :(得分:0)

: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 + 返回