我想要一个命令来编译和执行我在vim中编辑的C文件。我该怎么做?由于文件名中的.c,以下内容无效。
:map <leader>m :!make && ./%
如果我使用:!make && ./filename
我不知道如何浏览输出,那么我也希望看到一个带垂直分割窗口的解决方案。
答案 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 + 返回。