Linux下VIM C/C++ IDE配置

版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/AlexWoo0501/article/details/48852679

Linux下VIM C/C++ IDE配置

vim IDE环境安装

在用户目录下建立 ~/.vim/autoload ~/.vim/bundle 两个文件夹,并下载pathogen.vim放到 ~/.vim/autoload 下

mkdir -p ~/.vim/autoload ~/.vim/bundle
wget -O ~/.vim/autoload/pathogen.vim https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim

切换到 ~/.vim/bundle 下

cd ~/.vim/bundle

安装资源管理器插件nerdtree

git clone https://github.com/scrooloose/nerdtree.git

安装程序类、函数视图tagbar

git clone https://github.com/majutsushi/tagbar.git

安装底部详细状态栏

git clone https://github.com/bling/vim-airline.git

安装颜色方案插件molokai

git clone https://github.com/tomasr/molokai.git
cp -r molokai/colors/ ~/.vim/

安装C/C++插件cvim

wget -O ~/.vim/cvim.zip http://www.vim.org/scripts/download_script.php?src_id=9679
unzip ~/.vim/cvim.zip

配置vim,如果要所有用户都使用上面的插件,直接在 /etc/vimrc 后添加下面内容,如果只想特定用户使用,在用户的家目录下编辑文件 .vimrc,将下面内容加入 .vimrc 中

建议在用户家目录中编辑 .vimrc

"字符编码
"vim编码设置为utf-8,支持中文输入
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
set encoding=utf-8
set langmenu=zh_CN.utf-8

"语法和缩进
"设定vim与vi不兼容
set nocompatible
"自动缩进,即为新行自动添加与当前行同等的缩进
set autoindent
"类似C语言程序的缩进
set cindent
set showmatch
"检索时忽略大小写
set ignorecase
set hlsearch
"显示行号
set nu
filetype plugin indent on

"tab相关设置
"开启时,在行首按TAB将加入shiftwidth个空格,否则加入tabstop个空格。
set smarttab
"是将输入的TAB自动展开成空格。开启后要输入TAB,需要Ctrl-V<TAB>
set expandtab
set tabstop=4
"设定 << 和 >> 命令移动时的宽度为 4
set shiftwidth=4

"颜色方案
set t_Co=256
"使用molokai 配色方案
colorscheme molokai
"为光标所在行加下划线,molokai配色下为高亮一行
set cursorline
"语法高亮
syntax on

"插件设置
"pathogen settings
"启用pathogen进行插件管理
execute pathogen#infect()

"tagbar settings
"ctrl+t to open tarbar
nmap <C-T> :TagbarToggle<CR>

let g:tagbar_width = 20
"auto run tagbar when use vim
"autocmd VimEnter * nested :call tagbar#autoopen(1)
"tagbar window postion
let g:tagbar_right = 1
"let g:tagbar_left = 1

"nerdtree settings
"ctrl+n to open nerdtree
nmap <C-N> :NERDTree<CR>
"nerdtree window position 'left' or 'right'
let NERDTreeWinPos = 'left'
"nerdtree window Size
let NERDTreeWinSize = 30
let NERDTreeShowFiles = 1

"airline setting
"开启airline
set laststatus=2
"不检测行尾空格,trailing-white-space
let g:airline#extensions#whitespace#enabled = 0
"使用tab打开文件
"let g:airline#extensions#tabline#enabled = 1
"let g:airline#extensions#tabline#left_sep = ' '
"let g:airline#extensions#tabline#left_alt_sep = '|'

"Code folding
"set foldmethod=syntax
"代码块折叠
autocmd FileType python set foldmethod=indent
"autocmd FileType xml set foldmethod=indent
"autocmd FileType dia set foldmethod=indent

"command Model map for go
"go 语言快捷键支持
"gd 快速打开:GoDef,GoDef支持代码内跳转到指定函数
"gr 快速执行:GoRun , 运行go程序
au FileType go cnoremap gd :GoDef<CR>
au FileType go cnoremap gr :GoRun<CR>

let g:go_fmt_command = "goimports"

vim IDE环境效果

以上配置文件,默认资源管理器插件和安装程序类、函数视图都是关闭状态,可使用

  • Ctrl+T:打开或关闭TagBar
  • Ctrl+N:打开或关闭资源管理器nerdtree

以下是打开 TagBar 和 nerdtree 的效果图

  • 红色框中为nerdtree
  • 绿色框为文件编辑区域
  • 蓝色框为tagbar
  • 黄色框为vim-airline

nerdtree操作

  • ? 查看帮助
  • Ctrl+w+l 切到后面一个窗口,这种方式切换到最后一个窗口后就不能再向后切换了
  • Ctrl+w+h 切到前面一个窗口,这种方式切换到最前一个窗口后就不能再向前切换了
  • Ctrl+w+w 切到后面一个窗口,这种方式切换到最后一个窗口后,再次切换会跳到第一个窗口
  • 其它对资源管理器的操作使用 ? 查看具体使用方式
  • 当光标定位到左侧资源管理器中时,可使用/,在资源管理器中使用模式搜索文件

tagbar操作

  • ? 查看帮助
  • 选中某个标签后,使用回车,可以直接定位到该标签
  • 选中某个折叠标签组后,使用 + 可以展开该标签的所有标签,使用 - 可以折叠该标签组的所有标签
  • 使用 s 可以对每个标签组进行排序

C语言编辑

关于cvim插件的使用,可以参考
cvim安装及使用

cvim支持创建一个 C 文件,直接加入文件头模板,如下:

/*
 * =====================================================================================
 *
 *       Filename:  main.c
 *
 *    Description:  
 *
 *        Version:  1.0
 *        Created:  2015年09月23日 17时36分27秒
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  Dr. Fritz Mehner (mn), mehner@fh-swf.de
 *        Company:  FH Südwestfalen, Iserlohn
 *
 * =====================================================================================
 */

该模板可以通过编辑 ~/.vim/c-support/templates/Templates 模板进行设置

另外还有一些创建 C/C++ 语句,函数的方式:

  • \if 在当前位置插入一个自定义函数
  • \im 在当前位置插入main函数
  • \cfu 给函数创建一个注释
  • \cfr 插入一个注释段
  • \p< 插入 #include <>

具体快捷键可参考cvim包的 c-support/doc/c-hotkeys.pdf 文档

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页