[zt]Tutorial: Make Vim as Your C/C++ IDE Using c.vim Plugin

This article is part of the ongoing Vi / Vim Tips and Tricks Series. As a programmer, you may do lot of repetitive tasks while coding such as:
  • Adding file header
  • Adding function/frame comment
  • Including default code snippet
  • Performing syntax check
  • Reading documentation about a function
  • Converting a code block to comment, and vice versa


The C-Support Vim Plugin offers easiest way to do all of the above, saving lot of time and keystrokes for C and C++ programmers.

 

The plugin was written by Fritz Mehner, who explains the purpose ofthe plugin as: “Write and run programs. Insert statements, idioms,comments”.

He also highlights following features:

  • Statement oriented editing of C / C++ programs
  • Speed up writing new code considerably.
  • Write code and comments with a professional appearance from the beginning.
  • Use code snippets


This article explains how to install the plugin in 3 easy steps and 7 powerful features of the plugin.

3 Steps to Install the C.Vim Plugin

Step 1: Download C Vim Plugin

Download the plugin from vim.org website.

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

Step 2: Install the C Vim Plugin

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

Step 3: Enable the plugin in the ~/.vimrc

Add the following line to the ~/.vimrc to enable the plugin for Vim editor.

$ vim ~/.vimrc
filetype plugin on

8 Powerful Features of C.Vim Plugin

Feature 1: Add Automatic Header to *.c file

When you open a file with the extension .c it opens the file with
header as shown below. This will also place the cursor in the
Description field in Insert mode.

$ 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), mehner@fh-swf.de
* Company: FH Südwestfalen, Iserlohn
*
* =================================================
*/


To change the default value of the AUTHOR and COMPANY, modify the default value in ~/.vim/c-support/templates/Templates

$ vim ~/.vim/c-support/templates/Templates
|AUTHOR| = geekstuff
|AUTHORREF| = gk
|EMAIL| = subscribe@geekstuff
|COMPANY| = thegeekstuff.com


Now, when you create a new c file, it will show the modified values for AUTHOR and COMPANY as shown below.

$ vim myprogram.c
/*
* =================================================
*
* Filename: myprogram.c
*
* Description:
*
* Version: 1.0
* Created: 01/19/09 20:26:43
* Revision: none
* Compiler: gcc
*
* Author: geekstuff (gk), subscribe@geekstuff
* Company: thegeekstuff.com
*
* =================================================
*/


Note: To add custom fields to the header, modify the
~/.vim/c-support/templates/file-description.template file and add your
own custom field.

Feature 2: Adding C function using if

For writing a subroutine, type if in normal mode, which will prompt
for the function name (as shown in Fig1 below) and inserts the
subroutine with default function content (as shown in Fig2 below).

Vim C/C++ IDE - Adding C Function - 1

Fig1:Insert C Function Automatically

Vim C/C++ IDE - Adding C Function - 2

Fig 2:Insert C Function Automatically

Feature 3: Insert main Function Header using im

For inserting main function, type im in normal mode, which will add the main function as shown below.

[zt]Tutorial: Make Vim as Your C/C++ IDE Using c.vim Plugin

Fig 3: Insert C main function automatically

Feature 4: Insert a Function Header using cfu

For inserting a function header, type cfu in normal mode, which
will ask the function name as shown in Fig 4, and adds the comment as
shown in Fig 5.

Vim C/C++ IDE - Insert C Function Header - 1

Fig 4: Insert C Function Header Automatically

Vim C/C++ IDE - Insert C Function Header - 1

Fig 5: Insert C Function Header Automatically

Feature 5: Add a Frame comment using cfr

To add a frame comment, type cfr in normal mode, which will give the following formatted comment.

Vim C/C++ IDE - Insert Frame Comment

Fig 6: Insert a Frame Comment Automatically

Feature 6: To include header file, use p<

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.

Feature 7: Save the file, compile it and execute it immediately.

To save and compile the file use rc.

To run use rr.

Feature 8: Insert pre-defined code-snippet to the C code using nr

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 ---------- */


To insert this into your working c program, type nr from the normal
mode inside vim, which will prompt “read snippet
/home/ramesh/.vim/c-support/codesnippets/”, type calloc_int_matrix.c at
the end and press enter, which will insert the content of the
~/.vim/c-support/codesnippets/ calloc_int_matrix.c to your working file
automatically.

Note: You can define your own code snippets and place
it under ~/.vim/c-support/codesnippets/. You can also build your own
code snippets from the existing code – select the part of code need to
be made as code snippet, press nw, and give a file-name to it. From
next time, type nr and the file-name to get your custom code snippet.

There are lot of powerful features in the C-Support Vim Plugin. Read
the documentation for more information. The documentation is located in
the following location on your system.

Recommended Reading

[zt]Tutorial: Make Vim as Your C/C++ IDE Using c.vim PluginVim 101 Hacks, by Ramesh Natarajan.
I’m a command-line junkie. So, naturally I’m a huge fan of Vi and Vim
editors. Several years back, when I wrote lot of C code on Linux, I
used to read all available Vim editor tips and tricks. Based on my Vim
editor experience, I’ve written Vim 101 Hacks eBook that contains 101
practical examples on various advanced Vim features that will make you
fast and productive in the Vim editor. Even if you’ve been using Vi and
Vim Editors for several years and have not read this book, please do
yourself a favor and read this book. You’ll be amazed with the
capabilities of Vim editor.

Awesome Vim Editor Articles

Following are few awesome Vi / Vim editor tutorials that you might find helpful.

Note: Please subscribe to The Geek Stuff and don’t miss any future Vi and Vim editor tips and tricks.

原文链接: https://www.cnblogs.com/nbalive2001/archive/2011/02/21/1959736.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    [zt]Tutorial: Make Vim as Your C/C++ IDE Using c.vim Plugin

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/21288

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午11:19
下一篇 2023年2月7日 下午11:19

相关推荐