CLion自定义代码模板

  使用CLion的过程中可以发现新创建的文件都自动加入了文件头,其中包含了一些基本信息。其实,除了文件头,还有各种各样的代码补全块或者自定义模板可以使用。

自定义文件头

  自定已文件头可以在创建文件的时候自动添加创建的信息,比如:文件名、作者、时间、公司、著作权声明等等。

设置方法

  在菜单File > Settings > Editor > File and Code Templates中找到C File Header选项,然后编辑右侧的文本框定义相关内容,如下所示:

  其中,author字段可以使用${USR}变量来自动引用操作系统的用户名,或者直接用字符常量代替,其他字段字段可以自行添加。下面给出我自己的设置:

/********************************************************************************
* @author: Song Jiahao
* @email: songjiahao@whu.edu.cn
* @date: ${DATE} ${TIME}
* @version: 1.0
* @description: 
********************************************************************************/

示例

  创建新的文件时,会自动生成这样对应的文件头,如下所示:

自定义代码段

  CLion也提供了自定义代码段的功能,比如自定义for循环,while循环等。

方法

  这里以自带的for循环为例解释如果定义一个代码段。在菜单File > Settings > Editor > Live Templates中找到C/C++模板组,点击右侧的加号可以添加Live Template,例如以下为for循环的模板内容:

  1.缩略词,即用于触发补全的字符,可以自己定义,但是请注意不要有冲突。
  2.对当前模板的描述。
  3.模板文本,其中用$字符包括的为自己定义的变量,可以再通过编辑变量来实现想要效果。
  4.模板适用范围,点击change按钮可以勾选模板的适用范围,如下所示:

  5.编辑模板中的变量,可以使用CLion提供的函数(详情参考官方文档)或者搭配使用正则表达式等脚本来实现变量的赋值,如下所示:

  其中INDEX由建议命名规则赋值,COPY_INDEX等于INDEX的值,UPPER_BOUND则留空,这样可以通过Tab键跳转到相应位置。
  6.可以选择相应的触发按键以激活模板内容。

示例

自定义注释模板

  除了自定义文件头,自定义代码块,也可以自定义一些常用的注释模板,比如自定义一些适用于doxygen工具的模板,便于将来生成文档。这里给出一些我自己常用的注释模板,因为google推荐一行80个字符,所以我这里模板中使用了80个星号。

方法

  定义的方法与自定义代码段相同,我这里的相对比较简单,其中$END$表示模板激活后,光标最后停留的位置。

示例

多行注释

  使用两个星号触发。

/********************************************************************************
* $END$
********************************************************************************/

函数注释

  使用三个星号触发。

/********************************************************************************
* @author: Song Jiahao
* @date: $DATE$ $TIME$
* @brief: $END$
* @params: $param$
* @return: $return$
********************************************************************************/

代码修改注释

  使用/modify触发。

/********************************************************************************
* @author: Song Jiahao
* @date: $DATE$ $TIME$
* @modify: $END$
********************************************************************************/

代码块开始和结束注释

  分别使用/start/end触发。

/********************************************************************************
* ------ $END$ ------ start
********************************************************************************/

/********************************************************************************
* ------ $END$ ------ end
********************************************************************************/

步骤注释

  使用/step触发。

/********************************************************************************
* Step$END$
********************************************************************************/


当珍惜每一片时光~