一 总体介绍

配置路径,/etc/vim/vimrc,这个是系统的vim配置,假设一台PC多个用户使用,每一个用户的习惯不同的话,能够使用不同的配置。在用户文件夹下新建一个.vimrc的文件就能够了。

我眼下是将配置写在系统的配置中,我的配置文件例如以下所看到的:

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的配置文件例如以下:

"解决中文乱码问题,先检查编码,转换成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!

二 详细介绍

以下是依据使用的过程中做的记录。不断的完好自己的vim配置

1.不同平台下的字体设置不一样,为了通用,能够这样设置,參见(http://stackoverflow.com/questions/3539437/gvim-ubuntu-letter-spacing-consolas-font):

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的插件,參考:点击打开链接:

(1) 下载vundle

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就可以.



(3)安装相应的插件,终端下运行:

vim +BundleInstall +qall

(4)我的插件列表:

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,使用命令:

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"能够进行高速切换。由于比較简单就不须要设置快捷键了。更加具体的请參考帮助文档.

3. vim打开windows下文件里文乱码的解决方法:
 "解决中文乱码问题,先检查编码,转换成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就可以。參见博客:点击打开链接

未完待续,。。

我的vim配置记录的更多相关文章

  1. VIM配置相关记录

    把一直使用中的vim配置做个GIT入库管理,也把之前积累在机器上的文档,做个汇总. https://github.com/wujuguang/kyvim 1. 安装完整版vim vi和vim的区别?在 ...

  2. Vim配置及使用技巧

    要说Linux下比较好用的文本编辑器,我推荐vim(当然很多人都用emacs,可我没用过),用vim也有一年左右,有些心得体会想与诸位分享.在我的学习过程中,借鉴了不少优秀的博客,其中有csdn大神n ...

  3. 使用SecureCRT / win7远程桌面连接ubuntu配置记录(有更新)

    2017-03-03 更新于末尾 1.Windows7 — Ubuntu 远程桌面连接中 Tab 键不能补全的解决办法 2.xrdp远程连接ubuntu无法使用原机的中文输入法 2017-02-22 ...

  4. mac系统终端的color scheme配置和vim配置

    一.配置终端 solarized http://ethanschoonover.com/solarized 简单配置脚本: #!/bin/sh git clone git://github.com/a ...

  5. VIM配置示例

    以下是我习惯的vim配置,做个记录~_~ " 文件编码 set fileencoding=utf- set encoding=utf- set termencoding=utf- " ...

  6. kali2.0安装及使用笔记(附带vim配置,长期更新)

    作者:陈栋权 时间:16/08/19 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明, 且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 如有特别用途,请与我联系邮 ...

  7. 转载:Vim 配置入门

    转载:Vim 配置入门 原文地址:http://www.ruanyifeng.com/blog/2018/09/vimrc.html 作者: 阮一峰 Vim 是最重要的编辑器之一,主要有下面几个优点. ...

  8. vim配置轻量级IDE

    安装VIM 安装YouCompleteMe的时候, 需要VIM的版本比较高, 一般一些Linux长期支持版的Vim包就比较老, 所以可能需要编译安装. 卸载之前系统中安装的版本: CentOS/Fed ...

  9. Vim安装记录

    Vim安装记录 参考链接 安装命令 1. 安装依赖库 2. 下载最新vim源码 3. 删除旧版vim 4. 配置configure.编译.安装 5. 设置vim为默认编辑器 6. 必要的配置 Vim安 ...

随机推荐

  1. java9新特性-4-模块化系统: Jigsaw与Modularity

    1.官方Feature 200: The Modular JDK 201: Modular Source Code 220: Modular Run-Time Images 260: Encapsul ...

  2. input元素和display:inline-block的元素不在一行的解决办法

    每次用到了<input/> 元素 和inline-block的<span></span>(不一定是span,其他一些inline的元素也是一样)元素,他们总是会不在 ...

  3. VS2013+PTVS,python编码问题

    1.调试,input('中文'),乱码2.调试,print('中文'),正常3.不调试,input('中文'),正常4.不调试,print('中文'),正常 页面编码方式已经加了"# -- ...

  4. vue实现文字上下滚动

    实现文字的上下滚动使用positon的relative的top属性,通过动态改变top来实现相关内容的更换,通过transion来实现相关的动画效果, 相关的dom内容 <template> ...

  5. 一篇文章助你理解Python2中字符串编码问题

    前几天给大家介绍了unicode编码和utf-8编码的理论知识,没来得及上车的小伙伴们可以戳这篇文章:浅谈unicode编码和utf-8编码的关系.下面在Python2环境中进行代码演示,分别Wind ...

  6. 洛谷P1108 低价购买 (最长下降子序列方案数)(int,long long等 范围)

    这道题用n方的算法会很好做 我一开始想的是nlogn的算法求方案数, 然后没有什么想法(实际上也可以做,但是我太弱了)我们就可以根据转移方程来推方案数,只是把max改成加,很多动规题 都是这样,比如背 ...

  7. 用JS中的cookie实现商品的浏览记录

    最近在做一个购物车效果,为了实现商品的浏览记录效果可是让我百般周折,避免以后忘记特写此随笔与大家共享,希望博友们看后有所收获. 第一步:在一个公用的js文件下getCookie(“liulan”),c ...

  8. js 异步加载的方式

    js 异步加载的方式 渲染引擎遇到 script 标签会停下来,等到执行完脚本,继续向下渲染 defer 是“渲染完再执行”,async 是“下载完就执行”,defer 如果有多个脚本,会按照在页面中 ...

  9. localStorage 以及UserData[IE6 IE7]使用

    说在前头: UserData:属于IE6 IE7的老东西.麻烦且体验差,暂且不表 localStorage 属于HTML5的东西,兼容IE8以及其它W3C标准的主流浏览器.所以尽可能的具体解说 注意: ...

  10. python list的+,+=,append,extend

    面试题之中的一个. def func1(p): p = p + [1] def func2(p): p += [1] p1 = [1,2,3] p2 = [1,2,3] func1(p1) func2 ...