VIM: C程序员插件C.vim
2013-06-16 17:39
281 查看
作为一个程序员,在编码时你常常有如下的重复操作:
1. 给文件或者函数说明
2. 给函数添加注释,或者添加一个注释快
3. 添加一段已有代码 (:r !cat filename)
4. 检查代码语法
5. 读函数的帮助文档
6. 注释掉一块代码,将"//"转换为/* */
C.vim即C-Support vim,能够帮助C程序员[当然还有使用C++ 的家伙]很好的完成上述工作,为你节约时间,并保护你的键盘。插件作者Fritz Mehner,编写c.vim的宗旨是“Write and run programs. Insert statements, idioms, comments”.
本文就如何安装C.vim插件和它的基本功能做一个概述:
第一步:
下载插件vim.org [最好单击该链接下载,wget有可能不好使哦]
[cpp]
view plaincopyprint?
$ cd /usr/src
$ wget http://www.vim.org/scripts/download_script.php?src_id=9679
1. 给文件或者函数说明
2. 给函数添加注释,或者添加一个注释快
3. 添加一段已有代码 (:r !cat filename)
4. 检查代码语法
5. 读函数的帮助文档
6. 注释掉一块代码,将"//"转换为/* */
C.vim即C-Support vim,能够帮助C程序员[当然还有使用C++ 的家伙]很好的完成上述工作,为你节约时间,并保护你的键盘。插件作者Fritz Mehner,编写c.vim的宗旨是“Write and run programs. Insert statements, idioms, comments”.
本文就如何安装C.vim插件和它的基本功能做一个概述:
安装C.vim插件三步走:
第一步:
下载插件vim.org [最好单击该链接下载,wget有可能不好使哦]
[cpp]
view plaincopyprint?
$ cd /usr/src
$ wget http://www.vim.org/scripts/download_script.php?src_id=9679
$ cd /usr/src $ wget http://www.vim.org/scripts/download_script.php?src_id=9679[/code] 第二步:
安装插件了,VIM插件不过是一些脚本而已,调用即可
[cpp]
view plaincopyprint?
$ mkdir ~/.vim
$ cd ~/.vim
$ unzip /usr/src/cvim.zip$ mkdir ~/.vim $ cd ~/.vim $ unzip /usr/src/cvim.zip
第三步:
激活插件功能
[cpp]
view plaincopyprint?
$ vim ~/.vimrc
filetype plugin on$ vim ~/.vimrc filetype plugin on八项强大的功能
功能一:自动为*.c文件添加文件头说明
当你打开一个扩展名为.c的文件,在文件开始处会自动加上如下的描述,并且将光标定位到description处,此时是insert mode可直接键入文件描述
[cpp]
view plaincopyprint?
$ 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
*
* =================================================
*/$ 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 * * ================================================= */
当然你可以改变AUTHOR COMPANY等得默认值。
[cpp]
view plaincopyprint?
$ vim ~/.vim/c-support/templates/Templates
|AUTHOR| = geekstuff
|AUTHORREF| = gk
|EMAIL| = subscribe@geekstuff
|COMPANY| = thegeekstuff.com$ vim ~/.vim/c-support/templates/Templates |AUTHOR| = geekstuff |AUTHORREF| = gk |EMAIL| = subscribe@geekstuff |COMPANY| = thegeekstuff.com
现在再创建一个.c 文件,你会看到如下的文件头。
[cpp]
view plaincopyprint?
$ 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
*
* =================================================
*/$ 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 * * ================================================= */
功能二:插入一个函数 \if
当需要创建一个新函数时,只要在正常模式(ESC)键入\if,VIM会提示键入函数名(如图一),会直接得到图二的默认函数内容。
图1 自动插入函数,键入函数名
图二 自动插入函数效果
功能三:插入main函数 \im
与功能二类似,在正常模式下键入\im, 得到图三的默认的main函数内容
图三 自动插入main函数效果
功能四: 插入函数头 \cfu
插入一个函数头说明,在正常模式下键入\cfu,VIM会提示键入函数名,如图四,会得到如图五的函数说明注释块。
图四 插入函数头,键入函数名
图五 插入函数头效果
功能五: 添加一个注释块 \cfr
添加一个注释块, 在正常模式下键入\cfr, 会得到图6的注释块,并且光标被定位到注释块内,直接可键入注释。
图六 插入注释块效果
功能六:包含(include)一个头文件 \p<
在正常模式下键入\p<, 会得到“#include <>”,并且光标被定位到尖括号内,可以直接键入要包含的头文件名
功能七: 保存文件,编译后立即执行
保存后编译, \rc
运行 \\r
功能八: 插入预先编辑好的程序块 \nr
在安装插件时,插件自带了一些编译好的代码,你可以把这些代码插入你的程序中。
[cpp]
view plaincopyprint?
$ 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$ 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
译者注: 这个功能与 :r !cat filename 完成的功能相似,这里只是有一个默认路径,还可以保存,下面这段很不错的
你也可以自己编写一些常用模板代码放在~/.vim/c-support/codesnippets/. 当然在你读代码的时候也可以保存某些代码片段, 方法: 选中想要保存的代码片段,键入\nw,给它取一个名字。下次你就可以用过\nr使用这段代码了
原文:Tutorial: Make Vim as Your C/C++ IDE Using c.vim Plugin
更多参考:
README : ~/.vim/README.csupport
PDF : ~/.vim/c-support/doc/c-hotkeys.pdf
Online c-support vim plugin documentation
Additional Screenshots of this plug-in.
VIM Plugins for C / C++ developers
Cvim HotKey:
-- Comments -----------------------------------------------------------
\cl end-of-line comment (n,v,i)
\cj adjust end-of-line comment(s) (n,v,i)
\cs set end-of-line comment column (n)
\c* code -> comment /* */ (n,v)
\cc code -> comment // (n,v)
\co comment -> code (n,v)
\cfr frame comment (n,i)
\cfu function comment (n,i)
\cme method description (n,i)
\ccl class description (n,i)
\cfdi file description (implementation) (n,i)
\cfdh file description (header) (n,i)
\ccs C/C++-file section (tab. compl.) (n,i)
\chs H-file section (tab. compl.) (n,i)
\ckc keyword comment (tab. compl.) (n,i)
\csc special comment (tab. compl.) (n,i)
\cd date (n,v,i)
\ct date \& time (n,v,i)
-- Statements ---------------------------------------------------------
\sd do { } while (n,v,i)
\sf for (n,i)
\sfo for { } (n,v,i)
\si if (n,i)
\sif if { } (n,v,i)
\sie if else (n,v,i)
\sife if { } else { } (n,v,i)
\se else { } (n,v,i)
\sw while (n,i)
\swh while { } (n,v,i)
\ss switch (n,v,i)
\sc case (n,i)
\s{ \sb { } (n,v,i)
-- Preprocessor -------------------------------------------------------
\ps choose a standard library include (n,i)
\pc choose a C99 include (n,i)
\p< #include <> (n,i)
\p" #include "" (n,i)
\pd #define (n,i)
\pu #undef (n,i)
\pie #if #else #endif (n,v,i)
\pid #ifdef #else #endif (n,v,i)
\pin #ifndef #else #endif (n,v,i)
\pind #ifndef #def #endif (n,v,i)
\pi0 #if 0 #endif (n,v,i)
\pr0 remove #if 0 #endif (n,i)
\pe #error (n,i)
\pl #line (n,i)
\pp #pragma (n,i)
-- Idioms -------------------------------------------------------------
\if function (n,v,i)
\isf static function (n,v,i)
\im main() (n,v,i)
\i0 for( x=0; x<n; x+=1 ) (n,v,i)
\in for( x=n-1; x>=0; x-=1 ) (n,v,i)
\ie enum + typedef (n,i)
\is struct + typedef (n,i)
\iu union + typedef (n,i)
\ip printf() (n,i)
\isc scanf() (n,i)
\ica p=calloc() (n,i)
\ima p=malloc() (n,i)
\isi sizeof() (n,v,i)
\ias assert() (n,v)
\ii open input file (n,i)
\io open output file (n,i)
-- Snippets -----------------------------------------------------------
\nr read code snippet (n,i)
\nw write code snippet (n,v,i)
\ne edit code snippet (n,i)
\np pick up prototype (n,v,i)
\ni insert prototype(s) (n,i)
\nc clear prototype(s) (n,i)
\ns show prototype(s) (n,i)
\ntl edit local templates (n,i)
\ntg edit global templates (n,i)
\ntr rebuild templates (n,i)
-- C++ ----------------------------------------------------------------
\+co cout << << endl; (n,i)
\+" << "" (n,i)
\+c class (n,i)
\+ps #include <...> STL (n,i)
\+pc #include <c..> C (n,i)
\+cn class (using new) (n,i)
\+ci class implementation (n,i)
\+cni class (using new) implementation (n,i)
\+mi method implementation (n,i)
\+ai accessor implementation (n,i)
\+tc template class (n,i)
\+tcn template class (using new) (n,i)
\+tci template class implementation (n,i)
\+tcni template class (using new) impl. (n,i)
\+tmi template method implementation (n,i)
\+tai template accessor implementation (n,i)
\+tf template function (n,i)
\+ec error class (n,i)
\+tr try ... catch (n,v,i)
\+ca catch (n,v,i)
\+c. catch(...) (n,v,i)
-- Run ----------------------------------------------------------------
\rc save and compile (n,i)
\rl link (n,i)
\rr run (n,i)
\ra set comand line arguments (n,i)
\rm run make (n,i)
\rmc run 'make clean' (n,i)
\rme executable to run (n,i)
\rma cmd. line arg. for make (n,i)
\rp run splint (n,i)
\rpa cmd. line arg. for splint (n,i)
\rk run CodeCheck (TM) (n,i)
\rka cmd. line arg. for CodeCheck (TM) (n,i)
\rd run indent (n,v,i)
\rh hardcopy buffer (n,v,i)
\rs show plugin settings (n,i)
\rx set xterm size (n, only Linux/UNIX & GUI)
\ro change output destination (n,i)
相关文章推荐
- linux 下程序员专用搜索源码用来替代grep的软件ack(后来发现一个更快的: ag), 且有vim插件的
- VIM: C程序员插件C.vim
- VIM: C程序员插件C.vim
- VIM: C程序员插件C.vim
- 转载推荐的适合与C/C++程序员的vim插件--让你的vim用起来像source insight
- VIM: C程序员插件C.vim
- VIM: C程序员插件C.vim
- Vim自动补全插件----YouCompleteMe安装与配置
- vim 安装插件的网站
- 一个支持Verilog的Vim插件——AutoArg
- mac下用vim打造python IDE之二 —— Taglist插件
- vim 常用插件的安装
- vim插件
- 给程序员的vim指令速查图表
- 某人常用vim插件(zz)
- vim插件安装
- vim中的杀手级插件: vundle
- vim插件管理工具pathogen
- vim常用插件3
- vim插件【功能说明、安装方法和使用方法介绍】