使用 c.vim 插件使 Vim 成为您的 C/C++ IDE

举报
Tiamo_T 发表于 2021/11/25 07:30:56 2021/11/25
【摘要】 作为程序员,您在编码时可能会执行许多重复性任务,例如: 添加文件头 添加功能/框架注释 包括默认代码片段 执行语法检查 阅读有关函数的文档 将代码块转换为注释,反之亦然 C-Support Vim Plugin 提供了最简单的方法来完成上述所有操作,为 C 和 C++ 程序员节省了大量时间和击键次数。

作为程序员,您在编码时可能会执行许多重复性任务,例如:

  • 添加文件头
  • 添加功能/框架注释
  • 包括默认代码片段
  • 执行语法检查
  • 阅读有关函数的文档
  • 将代码块转换为注释,反之亦然


C-Support Vim Plugin 提供了最简单的方法来完成上述所有操作,为 C 和 C++ 程序员节省了大量时间和击键次数。

本文介绍了如何通过 3 个简单的步骤和插件的 7 个强大功能来安装插件。

安装 C.Vim 插件的 3 个步骤

第 1 步:下载 C Vim 插件

vim.org网站下载插件。

$ cd /usr/src
$ wget http://www.vim.org/scripts/download_script.php?src_id=9679

第 2 步:安装 C Vim 插件

$ mkdir ~/.vim
$ cd ~/.vim
$ unzip /usr/src/cvim.zip

第 3 步:在 ~/.vimrc 中启用插件

将以下行添加到 ~/.vimrc 以启用 Vim 编辑器的插件。

$ vim ~/.vimrc
filetype plugin on

C.Vim 插件的 8 个强大功能

功能 1:将自动标题添加到 *.c 文件

当您打开扩展名为 .c 的文件时,它会打开带有标题的文件,如下所示。这也会将光标置于插入模式下的描述字段中。


$ vim myprogram.c
/*
* =================================================
*       Filename:  myprogram.c
*
*    Description:
*
*        Version:  1.0
*        Created:  01/19/19 20:23:25
*       Revision:  none
*       Compiler:  gcc
*
*         Author:  tiamo
*        Company:  tiamo
*
* =================================================
*/


要更改 AUTHOR 和 COMPANY 的默认值,请修改 ~/.vim/c-support/templates/Templates 中的默认值

$ vim ~/.vim/c-support/templates/Templates
|AUTHOR|    = tiamo
|AUTHORREF| = gk
|EMAIL|     = tiamo@hgst.com.cn
|COMPANY|   = hgst.com.cn


现在,当您创建一个新的 c 文件时,它将显示修改后的 AUTHOR 和 COMPANY 值,如下所示。

$ vim myprogram.c
/*
* =================================================
*
*       Filename:  myprogram.c
*
*    Description:
*
*        Version:  1.0
*        Created:  01/19/09 20:26:43
*       Revision:  none
*       Compiler:  gcc
*
*         Author:  tiamo
*        Company:  hgst.com.cn
*
* =================================================
*/


注意:要向标题添加自定义字段,请修改 ~/.vim/c-support/templates/file-description.template 文件并添加您自己的自定义字段。

特性 2:使用 \if 添加 C 函数

编写子程序,在普通模式下输入\if,会提示输入函数名(如下图1)并插入带有默认函数内容的子程序(如下图2)。

Vim C/C++ IDE - 添加 C 函数 - 1


图 1:自动插入 C 函数

Vim C/C++ IDE - 添加 C 函数 - 2

图 2:自动插入 C 函数

特性 3:使用 \im 插入主函数头

插入 main 函数,在普通模式下输入 \im,这将添加 main 函数,如下所示。


图 3:自动插入 C main 函数

特性 4:使用 \cfu 插入函数头

插入函数头,在普通模式下输入\cfu,会询问函数名,如图4,添加注释如图5。

Vim C/C++ IDE - 插入 C 函数头文件 - 1


图 4:自动插入 C 函数头文件

Vim C/C++ IDE - 插入 C 函数头文件 - 1

图 5:自动插入 C 函数头文件

功能 5:使用 \cfr 添加框架注释

要添加框架注释,请在正常模式下键入 \cfr,这将给出以下格式化注释。

Vim C/C++ IDE - 插入帧注释


图 6:自动插入框架注释

特性 6:要包含头文件,请使用 \p<

在正常模式下键入 \p<,其中将包含文本“#include <>”,并在插入模式下将光标置于 < 符号中,您可以在其中键入头文件名。

功能7:保存文件,编译并立即执行。

要保存和编译文件,请使用 \rc。

运行使用\rr。

特性 8:使用 \nr 将预定义的代码片段插入到 C 代码中

该插件附带了一些可以插入到代码中的预定义代码片段。以下是插件附带的默认代码片段。

$ ls ~/.vim/c-support/codesnippets
Makefile                        calloc_double_matrix.c  main.c   print_double_array.c.noindent
Makefile.multi-target.template  calloc_int_matrix.c     main.cc  print_int_array.c.noindent

例如,如果你想创建一个函数来分配一个大小为行*列的动态整数矩阵;返回一个指针,您可以从现有的代码片段中重新使用它。以下是 calloc_int_matrix.c 预定义代码片段的内容。

/*
* ===  FUNCTION  ======================================================================
*         Name:  calloc_int_matrix
*  Description:  Allocate a dynamic int-matrix of size rows*columns; return a pointer.
* =====================================================================================
*/
int**
calloc_int_matrix ( int rows, int columns )
{
int   i;
int **m;
m     = calloc ( rows, sizeof(int*) );        /* allocate pointer array     */
assert( m != NULL );                          /* abort if allocation failed */
*m    = calloc ( rows*columns, sizeof(int) ); /* allocate data array        */
assert(*m != NULL );                          /* abort if allocation failed */
for ( i=1; i
m[i]  = m[i-1] + columns;
return m;
}  /* ----------  end of function calloc_int_matrix  ---------- */


要将其插入到您的工作 c 程序中,请在 vim 中的正常模式下键入 \nr,这将提示“读取代码段 /home/ramesh/.vim/c-support/codesnippets/”,在最后键入 calloc_int_matrix.c 并按输入,这将自动将 ~/.vim/c-support/codesnippets/ calloc_int_matrix.c 的内容插入到您的工作文件中。

注意:您可以定义自己的代码片段并将其放在 ~/.vim/c-support/codesnippets/ 下。您还可以从现有代码构建自己的代码片段——选择需要制作的代码部分作为代码片段,按 \nw,并为其指定文件名。从下次开始,键入 \nr 和文件名以获取您的自定义代码片段。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。