如何自定义模板实现makefile与.h头文件的内容自动生成
自定义模板自动填充头文件、Makefile预设内容的实现方法
下面分不同常用场景给出可直接落地的方案:
编辑器内置模板配置(日常开发最常用)
Vim/Neovim
直接在配置文件(~/.vimrc 或 Neovim 的 init.vim)中添加自动命令,新建对应后缀文件时自动写入内容:
" 新建.h头文件自动生成保护宏 autocmd BufNewFile *.h exec "normal! i#ifndef " . toupper(expand('%:t:r')) . "_H\r#define " . toupper(expand('%:t:r')) . "_H\r\r#endif" " 新建Makefile自动填充预设编译参数 autocmd BufNewFile Makefile exec "normal! iCC = gcc\rCFLAGS = -Wall -Wextra -g\rLDFLAGS = \r\rall: \r\t\$(CC) \$(CFLAGS) -o $@ $^\r\rclean: \r\trm -rf *.o main"
配置完成后新建.h文件或Makefile时会自动生成对应内容,保护宏会自动适配当前文件名。
VS Code
使用内置的用户代码片段功能实现:
- 按下
Ctrl+Shift+P,搜索并选择「配置用户代码片段」 - 分别创建/修改C语言的片段配置文件(c.json)和Makefile的片段配置文件(makefile.json)
- 添加对应片段规则:
头文件片段示例:
{ "Header Guard": { "prefix": "headerguard", "body": [ "#ifndef ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H", "#define ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H", "", "$0", "", "#endif" ], "description": "自动生成头文件保护宏" } }
新建.h文件后输入headerguard按Tab即可自动生成适配当前文件名的保护宏,也可以配置为新建文件自动触发。
其他IDE(Clion、Qt Creator等)
在设置中搜索「文件模板」选项,找到C/C++头文件、Makefile对应的模板条目,直接修改模板内容加入你需要的预设内容即可,新建文件时会自动套用模板。
命令行自定义脚本(适合终端批量创建场景)
可以写一个简单的Shell脚本实现自定义创建逻辑,示例如下:
#!/bin/bash # 保存为newfile,加执行权限后放入PATH路径即可使用 if [ $# -ne 1 ]; then echo "用法: newfile <文件名>" exit 1 fi filename=$1 if [[ $filename == *.h ]]; then guard_name=$(basename "$filename" .h | tr '[:lower:]' '[:upper:]')_H cat > "$filename" << EOF #ifndef $guard_name #define $guard_name #endif EOF elif [[ $filename == Makefile ]]; then cat > "$filename" << EOF CC = gcc CFLAGS = -Wall -Wextra -O2 LDFLAGS = all: main main: main.o \$(CC) \$(CFLAGS) -o \$@ \$^ \$(LDFLAGS) %.o: %.c \$(CC) \$(CFLAGS) -c -o \$@ \$< clean: rm -rf *.o main EOF fi
使用时直接执行newfile test.h或newfile Makefile即可生成带预设内容的对应文件。
内容的提问来源于stack exchange,提问作者ricardomart
相关产品推荐
相关产品推荐

