最近的任务是把公司的底层代码迁移到linux上,各种纠结就此开始。
敢于挑战的话首推VIM啦,我配置了一个Gvim,不是很完美,刚好可以应付编码。
参考一: 手把手教你把Vim改装成一个IDE编程环境(图文) - 吴垠的专栏 - 博客频道 - CSDN.NET 博主非常详细介绍了打造一款IDE级VIM的过程
参考二:vim中的杀手级插件: YouCompleteMe | Cloud's Blog 吴垠博主写文章的时候这个插件还没出来,经过测试可以媲美VS上的VA
这里说一下我的心得:
我是用vundle来管理插件的,vundle可以自动从github上更新插件,很强大。
我用tagbar代替了文中提到的taglist,这样导致了winmanager不能组合窗口,非常遗憾。
函数提示(echofunc)不能工作,貌似还是和YCM有冲突,也有点遗憾。
如果想用正统的吴垠的IDE那就得跟着他的教程做,我只是玩玩还没那个决心去学VIM。
献上我的.vimrc,不强大,就因为里面有点注释,看看就好别拷贝回去哦。
set encoding=utf8
set langmenu=zh_CN.UTF-8
set backupdir=~/.vim/backup "配置缓存目录
set tabstop=4 " 设置tab键的宽度
set nu! " 显示行号
syntax enable
syntax on "语法加亮
colorscheme molokai "配置主题
set smartindent "智能对齐方式
set shiftwidth=4 " 换行时行间交错使用4个空格
set ai! " 设置自动缩进
set pastetoggle=<S-P> "粘贴模式切换
set showmatch " 设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号
set foldmethod=syntax
set foldlevel=100 " 启动vim时不要自动折叠代码
"Vundle插件管理配置
set nocompatible " be iMproved
filetype off " required!
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle'
Bundle 'scrooloose/syntastic'
Bundle 'Valloric/YouCompleteMe'
Bundle 'majutsushi/tagbar'
Bundle 'vim-scripts/winmanager'
Bundle 'vim-scripts/a.vim'
Bundle 'mbbill/echofunc'
filetype plugin indent on " required!
"YCM自动补全配置 在输入模式中含有 '<C-p>', '<C-x>' or '<C-u>'键绑定会导致自动插入补全(BUG)
"let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/.ycm_extra_conf.py'
let g:ycm_confirm_extra_conf = 0 "不提示载入语法文件
"syntastic参数配置
"TagBar参数配置
let g:tagbar_left = 1 "显示在左边
let g:tagbar_width = 30 "宽度30像素
let g:tagbar_compact = 1 "隐藏最上方的帮助提示
let g:tagbar_updateonsave_maxlines = 1 "文件保存时自动更新tagbar
nmap <F8> :TagbarToggle<CR>
"CTags命令重绑
set tags=tags;
set autochdir
"窗口布局管理器
let g:winManagerWindowLayout='FileExplorer|TagbarToggle'
nmap wm :WMToggle<CR>
"buffer中操作前后buff文件 终端中使用错误
nmap <C-F2> : bprevious<CR> "前一个buff -> :bp
nmap <C-F3> : bNext<CR> "后一个buff -> :bN
nmap <C-S-F2> : bfirst<CR> "最前一个buff -> :bf
nmap <C-S-F3> : blast<CR> "最后一个buff -> :bl
"在buffer中切换头文件和源文件
nmap <F12> :A<CR>
"设置cscope行为
set cscopequickfix=s-,c-,d-,i-,t-,e-
嗯,VIM说完了到eclipse啦,装上CDT插件以后可以开发C/C++但是工程组织不是很强,提示也不给力最后不得不放弃。
接下来是codeblocks,弥补了eclipse的短板但是这界面你敢再丑点么?亮点是配置项超多,自动补全也很强大。
最后是codelite 这货我觉得是eclipse和codeblocks的杂交,小巧又强大,配置项非常精简,现在在用的IDE 了。听说不能多进程调试,我的观点是:到时候再说!
嗯,好像我没提到makefiles相关的东西,我提到工程组织就因为这个,让一群习惯VS 的人去看makefile效率不知有多低。但是这个总会要去面对的,但是到时候再说吧!