vim配置

前段时间,参考了网上的一些资料,把我的vim配置了下(我用的是Ubuntu 14.04),今天来把它总结下,最后的配置效果如下,我的.vimrc文件内容在文章最后。



一、vim配置文件


全局的vim配置文件是/etc/vim/vimrc,个人用户的vim配置文件是~/.vimrc。在启动vim时,当前用户的~/.vimrc文件会被自动读取,该文件可以包含对vim的一些设置,实现一些基本的配置通常只需修改~/.vimrc文件,如果需要更多的功能可以使用一些插件。

二、插件的使用


vim的插件很多(可以根据自己喜好选择),个人觉得使用插件最简单的方法是使用插件管理器。vundle(vim vundle)是一个vim的插件管理器,下面说下使用vundle来安装插件步骤:

1、从github上下载vundle到本地:


git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

2、配置.vimrc文件:


修改.vimrc文件(可以参考我的.vimrc文件的“使用vundle的必须配置”部分),修改完成后,保存退出。

3、管理插件


打开一vim窗口,在命令行模式下输入
:BundleList  //会显示你vimrc里面填写的所有插件名称
:BundleInstall //会自动下载安装或更新你的插件
如果要卸载插件就只需修改.vimrc文件,删除其中不需要的插件,保存退出后,再打开一vim窗口,在命令行模式下输入:BundleClean即可。

三、我的vim配置


1、vim基本配置


实现语法高亮、c/c++自动对齐、智能补全等功能。

2、插件相关的配置


我主要使用了ctags、tagbar、NERDtree、NERDCommenter、powerline等几个插件。

ctags:方便代码的阅读


使用:进入你需要阅读的代码的目录,如果你的源码是多层的目录,则进入最上层目录,然后在命令行执行命令:ctags -R;
接下来使用vim打开源码,如果你想查看某个函数的定义,使用Ctrl+]则可跳转到光标所在处的函数的定义处了,若要退回来,使用Ctrl+T即可。

tagbar:方便浏览源文件的标签,在侧边栏列出单签文件的所有标签


我的配置中,在vim一般模式下使用tb(先按他t,再按b,个人喜好)可以打开tagbar,再使用一次tb可以关闭tagbar。


NERDtree:用来浏览文件系统并打开文件或目录


我的配置中,在vim一般模式下使用nt可以打开NERDtree,再使用一次nt可以关闭NERDtree;详细的使用方法,在命令行模式下输入:h NERDTree查看。


NERDCommenter:可以对多种文件类型的文件进行不同方式地、快速地注释


\cc注释当前行
\cs以“性感”方式注释
\cu取消注释
注:在visual模式下执行命令,可以对选中的区块进行注释/反注释
详细的使用方法,在命令行模式下输入:h NERDCommenter查看。


powerline:美化vim状态栏的显示

我的.vimrc文件内容:

"===================================
"    Vim基本配置
"===================================
"colorscheme editplus
"关闭vi的一致性模式 避免以前版本的一些Bug和局限
set nocompatible

"配置backspace键工作方式
set backspace=indent,eol,start

"显示行号
set number

"设置在编辑过程中右下角显示光标的行列信息
set ruler

"当一行文字很长时取消换行
"set nowrap

"在状态栏显示正在输入的命令
set showcmd

"设置历史记录条数
set history=1000

"设置取消备份 禁止临时文件生成
set nobackup
set noswapfile

"突出现实当前行列
set cursorline
set cursorcolumn

"设置匹配模式 类似当输入一个左括号时会匹配相应的那个右括号
set showmatch

"设置C/C++方式自动对齐
set autoindent
set cindent

"开启语法高亮功能
syntax enable
syntax on

"指定配色方案为256色
set t_Co=256

"设置搜索时忽略大小写
set ignorecase

"设置在Vim中可以使用鼠标 防止在Linux终端下无法拷贝
set mouse=a

"设置Tab宽度
set tabstop=4

"设置自动对齐空格数
set shiftwidth=4

"设置按退格键时可以一次删除4个空格
set softtabstop=4

"设置按退格键时可以一次删除4个空格
set smarttab

"将Tab键自动转换成空格 真正需要Tab键时使用[Ctrl + V + Tab]
set expandtab

"设置编码方式
set encoding=utf-8

"自动判断编码时 依次尝试一下编码
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

"检测文件类型
filetype on

"针对不同的文件采用不同的缩进方式
filetype indent on

"允许插件
filetype plugin on

"启动智能补全
filetype plugin indent on

" 启动的时候不显示那个援助索马里儿童的提示
set shortmess=atI

"==================================
"compile debug run
"==================================
func! CompileCode()
   exec "w"
   if &filetype=="c"
       exec "!gcc -Wall %<.c -o %<"
   elseif &filetype=="cpp"
       exec "!g++ -Wall %<.cpp -o %<"
   elseif &filetype=="python"
       exec "!python %<.py"
   endif
endfunc

func! RunCode()
   exec "w"
   if &filetype=="c" || &filetype=="cpp"
       exec "! ./%<"
   elseif &filetype=="python"
       exec "python %<.py"
   endif
endfunc

func! RunGDB()
   if &filetype=="c" || &filetype=="cpp"
       exec "w"
       exec "!gcc % -g -o %<"
       exec "!gdb ./%<"
   endif
endfunc

map <c-c> :call CompileCode()<CR>
map <c-r> :call RunCode()<CR>
map <c-d> :call RunGDB()<CR>

"==================================
"    使用Vundle的必须配置
"===================================
set nocompatible              " be iMproved
filetype off                  " required!
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle'

" 可以通过以下四种方式指定插件的来源
" a) 指定Github中vim-scripts仓库中的插件,直接指定插件名称即可,插件明中的空格使用“-”代替。
Bundle 'EditPlus'
Bundle 'L9'

"display function name in the title bar/or the status line
Bundle 'ctags.vim'

"do all your insert-mode completion with Tab
Bundle 'SuperTab'

"display tags of the current file ordered by scope
Bundle 'TagBar'

Bundle 'The-NERD-tree'
Bundle 'The-NERD-Commenter'

" b) 指定Github中其他用户仓库的插件,使用“用户名/插件名称”的方式指定
"the ultimate vim status utility
Bundle 'Lokaltog/vim-powerline'

" c) 指定非Github的Git仓库的插件,需要使用git地址
"Bundle 'git://git.wincent.com/command-t.git'

" d) 指定本地Git仓库中的插件
"Bundle 'file:///Users/gmarik/path/to/plugin'

filetype plugin indent on     " required!


"Powerline
set laststatus=2
set t_Co=256
let g:Powline_symbols='fancy'

" CTags的设定
"设置tags
set tags+=~/code/tags
set tags=tags;
set autochdir

"tagbar
nmap tb :TagbarToggle<CR>
let g:tagbar_right=1
let g:tagbar_width=30
let g:tagbar_autofocus=1
let g:tagbar_sort=0
let g:tagbar_compact=1

"NERD-tree
nmap nt :NERDTreeToggle<CR>
let NERDChristmasTree=0
let NERDTreeWinSize=30
let NERDTreeChDirMode=2
let NERDTreeShowBookmarks=1
let NERDTreeWinPos="left"

"在状态栏显示正在输入的命令
set showcmd

"设置历史记录条数
set history=1000





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值