Vim的闲言碎语


不知不觉也用了接近两年的Vim了,也该写写Vim的一些东西了

Vim的目的

_通用_的高效 文本编辑器

首先,通用体现在能支持多种语言的编辑甚至编译运行。

它的键位的确是精心设计过的,用惯了会非常高效。

但Vim始终只是一个文本编辑器,要它提供大型IDE类似的功能是做不到的(当然能在配置后胜过一些中小型IDE)。

安装Vim

Ubuntu直接apt-get install vim-gtk python lua build-essential clang clang-dev即可。

Win下由于种种原因,官方版本并非最好选择。建议安装https://tuxproject.de/projects/vim/ 的版本,解压后运行install.exe,按d即可。

之后强烈建议http://sourceforge.net/projects/luabinaries/files/5.3/Windows%20Libraries/Dynamic/ 这里下载对应的lua-5.3_Win32/64_dllw4_lib.zip ,把其中的lua5.3.dll放到vim.exe同目录下。

之后在https://www.python.org/downloads/windows/ 下载 python2.7安装时注意勾选添加到path。

最后强烈建议安装http://clang.llvm.org/ (clang) 和 http://blog.csdn.net/sfezst/article/details/6212522 1/2步 (ctags)并都添加到PATH。

这样才算安装完全,下面步骤出错的概率会更小。

一开始Vim肯定是这样的:

此处输入图片的描述

初步配置

Vim的配置分为两个部分:

一部分是配置文件,在linux下是/home/你的用户名/.vimrc,windows下是vim.exe目录下的_vimrc,我们的设置就在这个里面。

另一部分是种种插件的存储目录,大概就是linux下的/home/xxx/.vim/和win下的vim.exe目录下的一大堆autoload plugin ftplugin等等文件夹。

以下用win介绍,linux的可类推。

一开始gui界面是gvim,是相当简陋的,我们需要一些基础的配置。

Sensible.vim

sensible.vim : Defaults everyone can agree on

用这个起步很简单。把http://www.vim.org/scripts/script.php?script_id=4391 下载下来的sensible.zip中的plugin目录和vim.exe目录中的plugin目录合并。正常情况下你应该能看到plugin\sensible.vim 的文件,这样就配置完成了。

_vimrc起步

在vim.exe目录下新建_vimrc,写入以下起步内容:

set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
syntax on          
colorscheme slate       
set cursorline 
set lines=32 columns=130

set guifont=courier_new:h11:w6 
" detect file type
filetype on
filetype plugin on

" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
set background=dark

" Uncomment the following to have Vim jump to the last position when
" reopening a file
if has("autocmd")
    au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
    "have Vim load indentation rules and plugins according to the detected filetype
    filetype plugin indent on
endif

" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.

set autowrite        
set autoindent        
set smartindent       
set tabstop=4       
set smarttab
set softtabstop=4   
set noexpandtab! 

set cindent          
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s     

set showmatch       
set linebreak       
set whichwrap=b,s,<,>,[,] 
set hidden " Hide buffers when they are abandoned
set mouse=a            
set number           
set history=50        " set command history to 50    

set laststatus=2 
set ruler 

set showcmd            
set showmode       

"--find setting--
set incsearch        
set hlsearch        

之后会长这样,基本就能满足基本需求了。

![Alt text](./2015-06-05 21-56-05屏幕截图.png)

插件管理基础

Pathogen – 独立本地插件目录

http://blog.csdn.net/zhaoyw2008/article/details/8012757

插件多了你会发现各个插件直接解压到各个目录会很混乱。这个插件可以让其他插件解压到bundle文件夹下的单独文件夹下,便于分离

Vundle – 自动在线下载/更新插件

http://lab.yqc.im/Windows-vim-vundle.html

上文1/2步就是安装Vundle,安装之后只要指定插件的github作者和名称就能自动下载安装了。

插件推荐

如何寻找插件:github / www.vim.org/scripts/

语言类

两个cpp语言增强

http://www.vim.org/scripts/script.php?script_id=1640

http://www.vim.org/scripts/script.php?script_id=4293

Python

http://www.vim.org/scripts/script.php?script_id=790

Javascript

http://www.vim.org/scripts/script.php?script_id=1491

Markdown

http://www.vim.org/scripts/script.php?script_id=2882

显示CSS颜色

http://www.vim.org/scripts/script.php?script_id=2150

汇编

http://www.vim.org/scripts/script.php?script_id=1650

界面类

Airline

https://github.com/bling/vim-airline

轻量版状态栏

Startify

https://github.com/mhinz/vim-startify

启动界面

小功能类

Easytags

保存时自动调用ctags生成文件,必备。

安装见http://blog.csdn.net/sfezst/article/details/6212522 1/2步

Tagbar

侧边栏显示各种东西,Taglist增强版,必备

NERDTree

侧边栏显示文件列表,必备

Easymotion

可以用\\w之类的命令直接跳转到任何一个w能跳转到的地方,必备

fugitive

GIT集成,基本必备

vim-unimpaired

为很多:set xxx提供了[x的快捷操作

VimShell

侧边栏打开Shell,兼容性比较好

Vim-indent-guide

每行左边缩进处显示一条线

ZoomWin

Ctrl+鼠标滚轮放大/缩小窗口

Guicolorscheme

让gvim的配色到终端vim中也能用,win下表现糟

补全/深层语义/提示

个人的组合是Syntastic提示+YCM补全c/cpp/c#/python + neocomplete with jscomplete and phpcomplete解决其他的

SingleCompile

必备。手动定义Compile函数的日子一去不复返了。

Syntastic

智能提示错误,基本必备。cpp需要clang以获得最佳效果

https://github.com/scrooloose/syntastic/wiki

Neocomplete

这个需要配合jscomplete和phpcomplete来解决大多数问题。非语义匹配最强。

可以用autocmd FileType cpp,c,python3,python,csharp,java NeoCompleteLock来禁用掉其在这几种文件类型的匹配

YoucompleteMe/Clang_complete

windows下前者安装较为困难,但是效果前者好很多。(https://bitbucket.org/Haroogan/vim-youcompleteme-for-windows/ 这里有YCM的Windows预编译版本)

cpp语义匹配最强

Javacomplete2

https://github.com/artur-shaik/vim-javacomplete2

开发中,个人很看好

Vim-latex

Latex支持,个人感觉一般

Gtags

被埋没的好东西。和ctags相比更适合用来阅读大代码。

首先请安装gnu global(windows:http://adoxa.altervista.org/global/ linux请自行编译6.4版本,软件仓库中的太老了)

之后安装Gtags.vim

在一个大型项目中的顶层运行gtags(vim之外的命令行),稍等片刻会生成GTAGSGRTAGS文件。之后在任何子目录的vim中使用:GTagsCursorGtags 标签名就会跳转到定义的地方去了。

基本以上这些就是常用的插件了,具体还要靠各位自己琢磨了。最后打个广告,推销下自己的配色:http://www.vim.org/scripts/script.php?script_id=5112