You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自定义模板实现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

使用内置的用户代码片段功能实现:

  1. 按下Ctrl+Shift+P,搜索并选择「配置用户代码片段」
  2. 分别创建/修改C语言的片段配置文件(c.json)和Makefile的片段配置文件(makefile.json)
  3. 添加对应片段规则:
    头文件片段示例:
{
  "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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:54:02