tools

生产工具

在开发的过程中,逐渐摸索一些适合模块化、规模化的应用需要的开发环境,更新使用的生产工具。

IDE

vim

现阶段还是以vim为主要生产工具,暂时还是vim的簇拥。

base

一些基础环境配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
syntax enable

set nocompatible
set nu
set hlsearch

filetype off

set et
set smarttab
set smartindent
set lbr
set fo+=mB
set sm
set selection=inclusive
set backspace=indent,eol,start

主要是关于缩进等设置,这里将tab转化成了空格,关于这个问题看个人爱好与项目组的整体要求,统一就可以。

plugin

vim的强大功能,将vim配置成IDE是靠各种插件的,这里主要放了一些我常用的插件。

vundle

vundle是一个插件管理插件,方便插件的安装管理。

配置:

1
2
3
4
5
6
7
8
"Vundle
set rtp+=~/.vim/bundle/Vundle.vim

call vundle#begin()

Plugin 'gmarik/Vundle.vim'

call vundle#end()

上述配置使vundle生效,一般需要安装插件在Plugin项中写入仓库名$user/$repo即可,然后在vim中使用:PluginInstall进行下载安装。当然也可以直接把vim插件clone或者下载到~/.vim/bundle/目录下

YCM

我主要是开发C,所以选择了大名鼎鼎的YouCompleteMe插件,这个在一些低版本的系统中的安装是很麻烦的,不过在高版本,如centos7中就比较容易安装了。

配置:

1
2
3
4
Plugin 'Valloric/YouCompleteMe'

"ycm
let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
插件列表

现在使用的全部插件如下

1
2
3
4
5
6
7
8
9
10
Plugin 'gmarik/Vundle.vim'  
Plugin 'Valloric/YouCompleteMe'
Plugin 'fatih/vim-go'
Plugin 'scrooloose/nerdtree'
Plugin 'majutsushi/tagbar'
Plugin 'Raimondi/delimitMate'
Plugin 'DoxygenToolkit.vim'
" uncommonly used
" Plugin 'mileszs/ack.vim'
" Plugin 'liuchengxu/graphviz.vim'

tmux

tmux用于分屏,实质是多会话

cscope + ctags

看代码时必不可少的函数定义跳转gd和引用查询。当然看代码用sourceinsight一类的也是可以的。

ag:the silver searcher

一个快速查找的引擎,很好用

AStyle / indent

代码格式化,我一般使用K&R风格。

1
indent -kr -i8

或者使用AStyle。可以与vim绑定在每次保存退出时自动格式化,与gofmt类似。

Doxygen mscgen graphviz

采用doxygen风格代码注释,配合DoxygenToolkit.vim使用,方便生成代码文档。mscgen是基于graphviz简化语法的绘图工具,可以嵌入到doxygen注释中,也可以独立使用。在生成一些不需要固定位置的图表时比较方便。

Cunit gcov+lcov

单元测试框架与代码覆盖度。gcov是gcc自带的,lcov则是将gcov的结果可视化。

to be continue…