CLion 2025.2 Help

文件模板变量

一个 file template 可以包含变量,在应用模板时会被其值替换。 变量是一个以美元符号开头的字符串 $ ,后跟变量名。 变量名称可以选择性地用花括号括起来。 例如: $MyVariable${MyVariable} 是同一个变量的不同表示法。

在模板主体和文件名中可以使用预定义和自定义变量。 例如,如果您在模板的 文件名 字段中输入 MyFile_${MONTH_NAME_FULL} ,生成的文件会在四月份创建时命名为 MyFile_April。 这里, ${MONTH_NAME_FULL} 是一个 预定义变量。 如果您使用 自定义变量,那么 CLion 会在您基于此模板创建文件时提示您输入变量值。

文件模板中的变量

预定义模板变量

文件模板中可以使用以下预定义变量:

变量

描述

${CALL_SUPER}

覆盖生成期间的基本函数调用签名

${DATE}

当前系统日期

${DAY}

当前日期

${DEFAULT_RETURN_VALUE}

函数的默认返回值

${DIR_PATH}

新文件所在目录的路径(相对于项目根目录)

${DS}

美元符号 $。 该变量用于转义美元符号,使其不被视为模板变量的前缀。

${FILE_NAME}

新建 C 或 C++ 文件的名称

${HEADER_COMMENTS}

始终返回 true ,用于测试目的

${HEADER_FILENAME}

为类或源文件生成的头文件名称

${HOUR}

当前小时

${INCLUDE_GUARD}

防止重复包含特定头文件

${MINUTE}

当前分钟

${SECOND}

当前秒

${MONTH}

当前月份

${MONTH_NAME_FULL}

当前月份的全名(如一月、二月等)

${MONTH_NAME_SHORT}

当前月份名称的前三个字母(如 Jan、Feb 等)

${NAME}

新实体的名称(文件、类、接口等)

${NAMESPACE_CLOSE}

重构期间创建的命名空间块的结束

${NAMESPACE_OPEN}

重构期间创建的命名空间块的开始

${PRODUCT_NAME}

IDE 名称(例如,CLion)

${PROJECT_NAME}

当前项目的名称

${RETURN_TYPE}

函数返回值的类型(用于生成新函数)

${SUIT_NAME}

Google 测试套件名称

${TEST_NAME}

Google 测试名称

${TIME}

当前系统时间

${USER}

当前用户的登录名(所有平台)

${USER_NAME}

对于 Windows 和 Linux:当前用户的登录名

对于 macOS:用户注册的全名

${YEAR}

当前年份

以下变量可用于 CMakeLists.txt 文件模板

${CMAKE_DEFAULT_PROJECT_FILE}

项目的 main.cpp / main.c / libary.cpp / library.c 文件。

${CMAKE_LANGUAGE_VERSION}

所选的语言标准。

${CMAKE_MAJOR_VERSION}

最低支持的 CMake 版本的主版本号。 例如,如果版本为 3.20 ,此变量对应于 3

${CMAKE_MINOR_VERSION}

最低支持的 CMake 版本的次版本号。 例如,如果版本是 3.20 ,此变量对应于 20

${CMAKE_LIBRARY_TYPE}

SHARED 表示共享库。

${QT_VERSION}

所选的 Qt 版本。

${REQUIRED_LIBS}

所选项目类型所需的 Qt 库。 默认情况下,对于 Qt 控制台可执行文件,它们是 Core ;对于 Qt 窗口小部件可执行文件,它们是 CoreGuiWidgets

变量方法

由于 CLion 使用 Velocity 作为文件模板的模板引擎,文件模板中的变量可以使用 Java String 方法。 例如,以下是可能的:

  • ${NAME.toUpperCase()} :将新实体(文件)的名称转换为大写字母。

  • ${PROJECT_NAME.length()} :打印项目名称的长度。

  • ${PRODUCT_NAME.substring(0,5)} :打印您使用的 IDE 名称的前五个字符。

自定义模板变量

除了预定义模板变量,还可以指定自定义变量。 如果必要,可以在模板中使用 #set 指令直接定义自定义变量的值。 在使用相应的变量之前编写指令。

例如,如果您希望使用您的全名而不是通过预定义变量 ${USER} 定义的登录名,请在自定义变量之前添加以下构造:

#set( $MyName = "John Smith" ) Created by: $MyName

如果变量的值在模板中未定义,CLion将会在应用模板时要求您指定该值。

最后修改日期: 2025年 9月 26日