自动或手动向C/C++头文件添加一些注释

pro*_*eek 3 c++ emacs elisp code-templates

我一直在头文件中添加以下预处理器代码.

#ifdef _HELLO_H_
#define _HELLO_H_

#endif

有没有办法自动执行此操作(我的意思是,当我第一次加载头文件时,emacs只是添加代码),或手动(我的意思是,我有一些Mx SOMETHING)?

如果不存在,我如何编程elisp代码?

  • 检查是否未定义#ifdef.
  • 在头文件的名称中输入名称_HELLO_H_.

小智 8

我使用YaSnippet,效果很好.它默认包含许多针对不同语言和模式的片段,不仅适用于C++.另外,您可以编写自己的模板(片段)甚至在其中使用Lisp(即生成包含当前年份的版权信息的文件头).还有一个很好的文档.

这是一个"一次"片段的示例,当您键入"一次"并在cc模式下按"tab"按钮时,该片段将被展开:

#name : #ifndef XXX; #define XXX; #endif
# --
#ifndef ${1:_`(upcase (file-name-nondirectory (file-name-sans-extension (buffer-file-name))))`_H_}
#define $1

$0

#endif
Run Code Online (Sandbox Code Playgroud)

这是我的c ++模式的"许可证"片段,它添加了当前年份的版权信息:

#name : C++ source file license
# --
//
// Copyright (C) `(format-time-string "%Y" (current-time))` Bueller? Bueller?
//
// $Id$
//
Run Code Online (Sandbox Code Playgroud)


kro*_*sey 7

我会看一下Skeleton Mode.