一 整体介绍python
配置路径,/etc/vim/vimrc,这个是系统的vim配置,假设一台PC多个用户使用,每个用户的习惯不一样的话,可以使用不一样的配置。在用户文件夹下新建一个.vimrc的文件就可以了。c++
我眼下是将配置写在系统的配置中,个人配置文件例如如下所看到的:git
set nu set tabstop=4 set autoindent set matchtime=1 set hlsearch set cindent set shiftwidth=4 set ruler set showmode colorscheme desert set guifont=Droid\ Sans\ Mono\ 14
上面是主要的配置。写在系统配置中,在我的用户中,作了一些有趣的定制,眼下用户文件夹下的vimrc的配置文件例如如下:github
"解决中文乱码问题,先检查编码,转换成utf-8 set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8 "nerdtree map <F2> :NERDTreeToggle<CR> "YouComepleteMe let g:ycm_global_ycm_extra_conf = '/home/zy/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py' map <F3> :YcmCompleter GoToDefinitionElseDeclaration<CR> "tagbar setting nnoremap <silent> <F4> :TagbarToggle<CR> let g:tagbar_ctags_bin='/usr/bin/ctags' let g:tagbar_width=30 "Bundle setting set nocompatible " be iMproved filetype off " required! set rtp+=~/.vim/bundle/vundle/ call vundle#rc() " let Vundle manage Vundle " required! Bundle 'gmarik/vundle' Bundle 'vim-scripts/fcitx.vim' "方便xml的插件 Bundle 'othree/xml.vim' "本身主动补全的插件 Bundle 'Valloric/YouCompleteMe' "文件夹树 Bundle 'scrooloose/nerdtree' Bundle 'majutsushi/tagbar'
Bundle 'vim-scripts/a.vim' filetype plugin indent on " required!
1.不一样平台下的字体设置不同,为了通用,可以这样设置,參见(http://stackoverflow.com/questions/3539437/gvim-ubuntu-letter-spacing-consolas-font):ubuntu
if has("gui_gtk2") set guifont=Consolas\ 11 elseif has("gui_macvim") set guifont=Consolas:h12 elseif has("gui_win32") set guifont=Consolas:h11 end
2. 使用vundle管理vim的插件,參考:点击打开连接:vim
(1) 下载vundlewindows
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle(2) vimrc中加入配置脚本:
set nocompatible " be iMproved let g:ycm_global_ycm_extra_conf = '/home/zy/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py' filetype off " required! set rtp+=~/.vim/bundle/vundle/ call vundle#rc() " let Vundle manage Vundle " required! Bundle 'gmarik/vundle' Bundle 'vim-scripts/fcitx.vim' "方便xml的插件 Bundle 'othree/xml.vim' "本身主动补全的插件 Bundle 'Valloric/YouCompleteMe' "文件夹树 Bundle 'scrooloose/nerdtree' filetype plugin indent on " required!当中, othree/xml.vim,是指github上用户为othree写的xml.vim插件,假设是其余地方的资源,写全部url就能够.
vim +BundleInstall +qall
a. xml.vim 编写xml的插件。详细用法參见doc里面的说明文件;浏览器
b. YouCompleteMe 补全的插件,听说是最好用的补全插件,需要编译,详细方法參见:点击打开连接 . 我编译的时候遇到问题:Could not find pythonLibs,方法:sudo apt-get install python-dev. 还有错误,是编译内存不够的问题。又一次安装就能够. 还有C++头文件和stl系统函数不能本身主动补全的问题,是配置文件里没有写好的问题,打开配置文件:/home/zy/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py,使用命令:app
echo | clang -v -E -x c++ -来查找C++相应的头文件,而后讲输出结果加入到上面的配置文件里就能够。
详细细节在github上都有讲,需要说明的是,假设不能补全stl,又一次编译试试。用的是quick安装的方法,比較简单。
函数
c. NERDTree 文件文件夹树。Bundle 'scrooloose/nerdtree' ,设置參考帖子:点击打开连接 在vimrc中设置相应的快捷键:map <F2> :NERDTreeToggle<CR>,另外。ctrl+w可以切换窗体.假设在终端下打开gvim,而后打开文件夹就显示的是当前的根文件夹,而在文件浏览器里右键用gvim打开就是用户根文件夹. 详细命令可以查看帮助文档
d.TagBar 浏览代码符号的插件,相对于taglist,tagbar在面向对象方面作的更好。因此选择了tagbar. 相同依据上面的方式去安装tagvar,github地址:点击打开连接.这个插件是基于ctags,因此需要先安装ctags(sudo apt-get install ctags). 而后作例如如下配置:
"tagbar setting nnoremap <silent> <F4> :TagbarToggle<CR> let g:tagbar_ctags_bin='/usr/bin/ctags' let g:tagbar_width=30
使用F4键就可以切换tagbar的显示了
f. 批量凝视与反凝视。比較简单就不用插件了,參见博客点击打开连接.选中要凝视的行,ctrl+v进入列模式。按下"I",进入插入模式,输入相应的凝视符就能够,注意按两次esc.批量取消凝视,相同是这个方案.固然存在这种插件,只是不能全部依赖插件.
g.C文件和.h文件之间的高速切换。a.vim插件,github地址:点击打开连接.命令行中输入":A"可以进行高速切换。因为比較简单就不需要设置快捷键了。更加具体的请參考帮助文档.
"解决中文乱码问题,先检查编码,转换成utf-8 set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8
------------------------------------------------------------------------------------------------------------------------------------------------
使用技巧:
1.格式化代码:
格式化全文: gg=G 格式化当前航: ==
2. 给vim装一个中文的帮助文档。參考帖子:点击打开连接
(1)下载安装包:点击打开连接
(2)解压缩,进行安装:
sudo ./vimcdoc.sh -i(3)配置一下,在~/.vimrc中加入一句:
set helplang=cn(4)在vim中使用:
:help usr就可以使用中文的vim帮助文档了。感谢翻译的这群人。
3. 输入的时候居中
需求:有时候老是想在屏幕中间输入。直接在命令行模式下输入zz就能够。參见博客:点击打开连接
未完待续,。。