网上已经有很多很好的vim使用和配置教程。但每个人都有自己的习惯,因此教程仅作参考,只有在使用过程中才能体会到具体的问题,然后解决问题才能把vim调教的顺手。本文不再赘述vim的操作,直接从配置开始。
一、配置文件
-
基础配置
vim的所有配置都是在 ~/.vimrc 这个文件中完成。默认是没有的需要自己新建:
123cd ~touch .vimrcvim .vimrc以下是我个人的.vimrc文件的基础配置部分,双引号内为注释内容:
1234567891011121314151617181920212223242526272829303132333435363738"去掉vi的一致性"set nocompatible"显示行号"set number" 隐藏滚动条"set guioptions-=rset guioptions-=Lset guioptions-=b"隐藏顶部标签栏"set showtabline=0"设置字体"set guifont=Monaco:h13syntax on "开启语法高亮"let g:solarized_termcolors=256 "solarized主题设置在终端下的设置"set background=dark "设置背景色"colorscheme solarizedset nowrap "设置不折行"set fileformat=unix "设置以unix的格式保存文件"set cindent "设置C样式的缩进格式"set tabstop=4 "设置table长度"set shiftwidth=4 "同上"set showmatch "显示匹配的括号"set scrolloff=5 "距离顶部和底部5行"set laststatus=2 "命令行为两行"set fenc=utf-8 "文件编码"set backspace=2set mouse=a "启用鼠标"set selection=exclusiveset selectmode=mouse,keyset matchtime=5set ignorecase "忽略大小写"set incsearchset hlsearch "高亮搜索项"set noexpandtab "不允许扩展table"set whichwrap+=,h,lset autoreadset cursorline "突出显示当前行"set cursorcolumn "突出显示当前列" -
一键执行python代码
其他常用的编辑器都有很方便的一键执行的功能或插件,例如Sublime Text的command+b、Atom的script插件。vim实现这个功能只需要在.vimrc中添加如下代码就可以实现F5一键执行python代码,而且由于是调用了vim的quickfix功能,因此还支持如果出现错误,跳转到错误行。
12345678910111213"按F5运行python"map <F5> :Autopep8<CR> :w<CR> :call RunPython()<CR>function RunPython()let mp = &makeprglet ef = &errorformatlet exeFile = expand("%:t")setlocal makeprg=python\ -uset efm=%C\ %.%#,%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,%Z%[%^\ ]%\\@=%msilent make %copenlet &makeprg = mplet &errorformat = efendfunction但是这个一键执行有一个小问题,由于quickfix的原因,不支持标准输入input()和raw_input(),只要代码中有这两个函数,100%卡死,目前这个问题貌似还无解。如果不用quickfix就可以支持输入,但是在终端中使用的话就是跳回终端输入和输出;使用macvim的话又会出现输出数据很多时就无法查看全部。由于我在写python是标准输入用的较少,就决定放使用quickfix来保证实用和美观。
二、插件
先上我的插件目录,本文只着重介绍Vundle和YouCompleteMe两个插件因为这两个插件的安装过程比较复杂一些,而其他插件的安装几乎可以算是傻瓜式的:
1 2 3 4 5 6 7 8 |
Plugin 'VundleVim/Vundle.vim' Plugin 'Valloric/YouCompleteMe' Plugin 'Lokaltog/vim-powerline' Plugin 'scrooloose/nerdtree' Plugin 'Yggdroot/indentLine' Plugin 'jiangmiao/auto-pairs' Plugin 'tell-k/vim-autopep8' Plugin 'scrooloose/nerdcommenter' |
Vundle
杀手级插件。这是唯一一个需要手动安装的插件。有了这个,安装其他插件就方便很多。
- 1、安装
首先需要从github上得到项目的源码,在终端下的命令如下(请自备git):
1git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
若提醒目录不存在请先自行新建目录:
1234cd ~mkdir .vimcd .vimmkdir bundle
然后需要在.vimrc文件中添加一些配置才能生效:
1234567filetype offset rtp+=~/.vim/bundle/Vundle.vimcall vundle#begin()Plugin 'VundleVim/Vundle.vim'Plugin '你的插件'call vundle#end()filetype plugin indent on - 2、使用
Vundle安装插件的方法非常简单,只需要两步。先在.vimrc文件中添加Plugin命令:
12“这是安装Github上的插件”Plugin 'Lokaltog/vim-powerline'下面是安装在vim-script上的插件的方法,引号里为插件名称,其他插件安装方法请自行查看项目主页:
1Plugin 'L9'在添加完.vimrc的的配置后,:wq保存并退出vim,重启vim并输入下面的命令后,vim就会自动下载并安装插件了
1:PluginInstall当看到命令行出现Done!就代表所有插件安装完成啦!
YouCompleteMe
杀手级插件。vim上的自动补全神器,能够提供类似IDE的自动补全体验,还能和Syntastic配合提供实时语法检查。YouCompleteMe与其他插件不同的地方在于不仅需要安装,还需要自己手动编译,而且还需要在.vimrc中配置。
YouCompleteMe支持的语言有:
C、Objectiv-c、C#、C++、Objectiv-C++、Php、Javascript、Typescript、python、Go、Rust
- 安装只需要一条命令:
1Plugin 'Valloric/YouCompleteMe' - 编译的命令:
12cd ~/.vim/bundle/YouCompleteMe./install.py --clang-completer参数 –clang-completer是为了加上C系列语言的自动补全,如果不需要可以不加,它同时还支持其他语言的补全,详细请看官方文档。
- YouCompleteMe涉及到的配置选项有很多,笔者也没有完全了解,此外,个人觉得Syntactic的提示略丑陋,因此没有安装。此处指列出笔者在使用的,详细请查看官方文档:
1234567891011121314151617181920212223242526272829"默认配置文件路径"let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'"打开vim时不再询问是否加载ycm_extra_conf.py配置"let g:ycm_confirm_extra_conf=0set completeopt=longest