利用c.vim插件,你可以实现
这一插件的作者是 Fritz Mehner, 目标就是打造程序员流畅的编辑环境。
这一插件还能完成:
接下来我们对这一插件详细介绍.
$ cd /usr/src
$ wget http://www.vim.org/scripts/download_script.php?src_id=9679
$ mkdir ~/.vim
$ cd ~/.vim
$ unzip /usr/src/cvim.zip
$ vim ~/.vimrc
filetype plugin on
当你新建一个扩展名.c的文件时候,自动在文件头部增加头部注释
$ vim myprogram.c
/*
* =================================================
* Filename: myprogram.c
* * Description:
*
* Version: 1.0
* Created: 01/19/09 20:23:25
* Revision: none
Compiler: gcc
* Author: Dr. Fritz Mehner (mn),
[email protected]
* Company: FH Südwestfalen, Iserl*
* =================================================
*/
其中如果你要改变 AUTHOR 和 COMPANY的值, 要修改模板文件 ~/.vim/c-support/templates/Templates
$ vim ~/.vim/c-support/templates/Templates
|AUTHOR| = geekstuff
|AUTHORREF| = gk
|EMAIL| = subscribe@geekstuff
|COMPANY| = thegeekstuff.com
现在编辑一个新文件,看看你的作者和公司名称改变了没有。
$ vim myprogram.c
键入"if 加函数名称 (as shown in Fig1 below) 就会在文件中自动完成函数的定义,就像图二那样。
添加的效果如下:
Type "p< in the normal mode, which will include the text “#include <>”, and places the cursor in the < symbol in Insert mode where you can type the header file name.
保存并编译文件 "rc.
运行 "rr.
The plugin comes with few pre-defined code snippets that you can insert into your code. Following are the default code snippets that comes with the plugin.
$ 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
For example, if you want to create a function that will Allocate a dynamic int-matrix of size rows*columns; return a pointer, you can re-use it from the existing code snippets. Following is the content of the calloc_int_matrix.c pre-defined code snippets.
/*
* === 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 ———- */
如果要插入这段代码,可以键入"nr 文件名称,代码就会自动插入了。
下面列举几个常用的Hot Keys
/cl
/cc
/c*
/cd && /ct
/sd
/sfo
/sif
/sife
/swh
/ss
/sb
/p<
/if
/im
/in
/i0(0 not o)
/ip
/isc
/ica
/isi
/rc
/rl
/rr
PS:若不使用/rc,/rl,/rr执行编译链接运行的话,可以保存后执行。但是C++要使用g++,不是gcc。如 g++ Hello.cpp -o hello