================================使用vim打造IDE, 针对C语言开发者建议使用gvim================================先上两个截图 # 安装ctags1. 下载地址: http://ctags.sourc ...
================================
先上两个截图
# 安装ctags# 安装cscope# 安装ruby, command-t插件会用到# 安装vim, vim-gtk# 在home目录下创建 .vimrc 并编辑# 在home目录下创建 .vim 目录# 在 ~/.vim/colors 目录中创建 mycolor.vim 并编辑# 在 ~/.vim/syntax 目录中创建 c.vim 并编辑# 下载插件 vundle 到 ~/.vim/bundle# 下载插件 pathogen 到 ~/.vim/autoload# 安装其余 vim 插件# 编译 command-t插件# 编译 YouCompleteMe 插件# 创建 tag 生成和高亮脚本# 使用YouCompleteMe的自动补全功能
附录1 .vimrc
"===================通用配置======================"文件搜索路径set path=.,/usr/include,," 控制set nocompatible "关闭vi兼容filetype off "关闭文件类型侦测,vundle需要set fileencodings=utf-8,gbk "使用utf-8或gbk编码方式syntax on "语法高亮set backspace=2 "退格键正常模式set whichwrap=<,>,[,] "当光标到行首或行尾,允许左右方向键换行set autoread "文件在vim外修改过,自动重载 set nobackup "不使用备份set confirm "在处理未保存或只读文件时,弹出确认消息 set scrolloff=3 "光标移动到距离顶部或底部开始滚到距离set history=1000 "历史记录数set mouse= "关闭鼠标set selection=inclusive "选择包含最后一个字符set selectmode=mouse,key "启动选择模式的方式set completeopt=longest,menu "智能补全,弹出菜单,无歧义时才自动填充set noswapfile "关闭交换文件set hidden "允许在有未保存的修改时切换缓冲区"显示colorscheme mycolor "选择配色方案set t_Co=256 "可以使用的颜色数目set number "显示行号set laststatus=2 "显示状态行set ruler "显示标尺set showcmd "显示输入的命令set showmatch "高亮括号匹配set matchtime=1 "匹配括号高亮的时间(十分之一秒)set matchpairs={:},(:) "匹配括号"{}""()" set hlsearch "检索时高亮匹配项set incsearch "边检索边显示匹配set go-=T "去除gvim的toolbar"格式set noexpandtab "不要将tab转换为空格set shiftwidth=4 "自动缩进的距离,也是平移字符的距离set tabstop=4 "tab键对应的空格数set autoindent "自动缩进set smartindent "智能缩进"===================按键映射======================"按键映射的起始字符let mapleader = '\' "使用Ctrl-l 和 Ctrl+h 切换标签页nnoremap <C-l> gt nnoremap <c-h> gT"在行末加上分号nnoremap <silent> <Leader>; :<Esc><End>a<Space>;<Esc><Down>"保存nnoremap <C-s> :w<CR>"替换nnoremap <C-h> :%s/<C-R>=expand("<cword>")<CR>/<C-R>=expand("<cword>")<CR>"===================插件管理======================" 下载vundle" git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim" 下载pathogen" curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim" 将vundle加入到runtime pathset rtp+=~/.vim/bundle/Vundle.vim" 下载到bundle目录的插件call vundle#begin()" plugin on GitHub repoPlugin 'VundleVim/Vundle.vim'Plugin 'scrooloose/nerdtree'Plugin 'Lokaltog/vim-powerline.git'Plugin 'wincent/command-t'Plugin 'Valloric/YouCompleteMe'Plugin 'tomtom/tlib_vim'Plugin 'tomtom/viki_vim'" plugin from http://vim-scripts.org/vim/scripts.htmlPlugin 'taglist.vim'Plugin 'EasyGrep'" Git plugin not hosted on GitHub" Plugin 'git://...'" git repos on your local machine" Plugin 'file://...'call vundle#end()filetype plugin indent on " required"===================插件配置======================"-----pathogen-----execute pathogen#infect() "-----NERDTree-----let g:NERDTreeCaseSensitiveSort = 1let g:NERDTreeWinSize = 25let g:NERDTreeWinPos = "right"nnoremap <silent> <Leader>t :NERDTreeToggle<CR> nnoremap <silent> <Leader>o :NERDTreeFind<CR>"-----Powerline-----set fillchars+=stl:\ ,stlnc:\let g:Powerline_symbols = 'compatible'let g:Powerline_stl_path_style = 'filename' "只显示文件名"-----Command-T-----let g:CommandTFileScanner = 'ruby' "使用ruby作为文件浏览器let g:CommandTTraverseSCM = 'dir' "根目录为执行vim时所在的目录 "打开文件跳转nnoremap <silent> <Leader>f :CommandT<CR>"-----taglist-----let Tlist_Show_One_File = 1 "只显示当前文件的taglistlet Tlist_Exit_OnlyWindow = 1 "taglist是最后一个窗口时退出vimlet Tlist_Use_Left_Window = 1 "在左侧窗口显示taglistlet Tlist_GainFocus_On_ToggleOpen = 1 "打开taglist时,光标停在taglist窗口let Tlist_Auto_Update = 1 "自动更新" 打开标签浏览器nnoremap <silent><Leader>dt :Tlist<CR>" 重新生成标签 nnoremap <silent><Leader>bt :!~/Myfiles/Tool/sh/ctags/hitags.sh<CR>" 高亮标签nnoremap <silent><Leader>ht :so tags.vim<CR>"-----cscope-----"加载cscope库if filereadable("cscope.out") cs add cscope.outendifset cscopequickfix=s-,c-,d-,i-,t-,e- "使用quickfix窗口显示结果set cst "跳转时也使用cscope库"打开引用窗口nnoremap <silent><Leader>cw :cw<CR>"重新生成索引文件nnoremap <silent><Leader>bc :!cscope -Rbq<CR>"s: 查找本C符号"g: 查找本定义"d: 查找本函数调用的函数"c: 查找调用本函数的函数"t: 查找本字符串"e: 查找本egrep模式"f: 查找本文件"i: 查找包含本文件的文件nnoremap <C-\>s :scs find s <C-R>=expand("<cword>")<CR><CR>nnoremap <C-\>g :scs find g <C-R>=expand("<cword>")<CR><CR>nnoremap <C-\>c :scs find c <C-R>=expand("<cword>")<CR><CR>nnoremap <C-\>t :scs find t <C-R>=expand("<cword>")<CR><CR>nnoremap <C-\>e :scs find e <C-R>=expand("<cword>")<CR><CR>nnoremap <C-\>f :scs find f <C-R>=expand("<cfile>")<CR><CR>nnoremap <C-\>i :scs find i <C-R>=expand("<cfile>")<CR><CR>nnoremap <C-\>d :scs find d <C-R>=expand("<cword>")<CR><CR>"-----YouCompleteMe-----let g:ycm_server_python_interpreter= '/usr/bin/python2'let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py' "默认配置文件let g:ycm_key_invoke_completion = '<C-Tab>' "跨文件补全let g:ycm_confirm_extra_conf = 0 "关闭加载配置文件提示let g:ycm_cache_omnifunc = 0 "关闭补全缓存let g:ycm_enable_diagnostic_signs = 0 "关闭诊断提示符let g:ycm_enable_diagnostic_highlighting = 1 "关闭诊断高亮"let g:ycm_show_diagnostics_ui = 0 "关闭诊断uilet g:ycm_min_num_of_chars_for_completion = 3 "n字符开始自动补全"获取变量类型nnoremap <silent><Leader>yt :YcmCompleter GetType<CR>"跳转定义或声明nnoremap <silent><Leader>yg :YcmCompleter GoTo<CR>"跳转包含文件nnoremap <silent><Leader>yi :YcmCompleter GoToInclude<CR>"打开诊断信息nnoremap <silent><Leader>yd :YcmDiags<CR>"-----EasyGrep-----let EasyGrepMode = 2 "根据文件类型搜索相应文件let EasyGrepRecursive = 1 "递归搜索let EasyGrepCommand = 1 "使用greplet EasyGrepJumpToMatch = 0 "不要跳转
原标题:打造VIM IDE(针对C语言开发者)
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。