如何在 vim (c/c++) 中超级快速地自动生成 Makefile?
Posted
技术标签:
【中文标题】如何在 vim (c/c++) 中超级快速地自动生成 Makefile?【英文标题】:How to generate automatically Makefile in vim (c/c++) super fast? 【发布时间】:2016-10-18 07:16:02 【问题描述】:我对 vim 很陌生, 安装了几个插件,其中之一是 SnipMate, 这在编写简短的 Makefile 时非常有用。
snippet base
PHONY: clean, mrproper
CC = gcc
CFLAGS = -g -Wall
all: $1
%.o: %.c $(CC) $(CFLAGS) -c -o $@ $<
$1:OUTPUT_FILENAME: $1.o
$(CC) $(CFLAGS) -o $@ $+
clean: rm -f *.o core.*
mrproper: clean rm -f $1
但是手动添加文件名仍然需要时间, 我很确定有一些 Vim Magic :) ,在我写完这些 c 文件后,Vim 可以自动(通过热键执行),有什么建议吗?
谢谢大家!
【问题讨论】:
你可以前往 vim stackexchange 并在那里询问我猜想获得更好结果的机会。 @Hayt,我不同意。如果只是获取目录中每个 C 文件的未过滤列表,则有完全有效的方法是 100% gnu-make。它甚至比每次添加文件时都需要执行的 Vim 方法更简单。 @LucHermitte 是的,可以使用 gnu-make 方法来做到这一点。我指的是人们通常会制作一些“vim-magic”,stackexchange 可能会导致更多答案。从来没有说过这会是题外话。 @Hayt 几个人和我在 vi.SE 和 SO 上回答 vim 问题。关于获得高质量的答案,只要有些人因“跑题”或任何原因关闭,SO 上的 vim 问题就会得到答案。 @LucHermitte 是的,我只是想指出它也作为替代品存在。 ;) 虽然仍处于测试阶段。 【参考方案1】:您可以使用glob()
和globpath()
自动提取文件名(不要问我有关导入结果的 SnipMate 语法——我正在维护另一个模板/sn-p 插件)。
但是如果你总是自动使用everything,你为什么不直接用make来做呢?有一些方法可以自动 glob 匹配模式的文件名。如果您需要修剪文件,那么在这种情况下明确列出您想要保留的每个文件都是有意义的。但不要忘记在每次触发 更新文件列表 操作时删除不需要的文件。
顺便说一句,IIRC,一个正确配置的 gnumake(即不是 mingw one)已经有 %.o: %.c
的规则
【讨论】:
以上是关于如何在 vim (c/c++) 中超级快速地自动生成 Makefile?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 eclipse vrapper 中使用 vim 样式的 ctrl p 列表?