vim常用插件介绍

vim常用插件介绍:
 
vim是Linux下强大的编辑器之一,是每个linuxer并不可少的工具。vim的插件扩展
工能为vim增加了不少的特色。关于如何将vim打造IDE网上的资料也不少,下面只是
我自己对vim的配置。
 
推荐文章:http://blog.csdn.net/wooin 
<<手把手教你把 Vim 改装成一个 IDE 编程环境>>
 
工具或插件介绍,如想进一步了解请参照官方文档。
1) Exuberant Ctags : 它可以为你的源码产生一个tags文件,并且在tags文件中记录
源文件的索引以帮助你快速得找到某个符号的定义。它支持相当多的语言,如C、C++、C#、Shell等等。
常用命令:Ctrl+] 跳到声明定义处  Ctrl+T 跳回原处
下载地址:http://ctags.sourceforge.net

2) trinity.vim : Build the trinity of srcexpl, taglist, NERD_tree to
be a good IDE. 这个插件将 srcexpl、taglist、NERD_tree这三个插件集中起来做成IDE
taglist: Source code browser (supports C/C++, java etc)
srcexpl: A Source code Explorer based on tags works like context
         window in Source Insight
NERD_tree: A tree explorer plugin for navigating the filesystem
下载地址:http://www.vim.org/scripts/script.php?script_id=2347

3) omnicppcomplete: C/C++ omni-completion with ctags database
这个插件用于自动补全,可用于 . ->  :: 等操作符。
下载地址:http://www.vim.org/scripts/script.php?script_id=1520

4) c.vim: C/C++ IDE --  Write and run programs. Insert statements, idioms, 
comments etc. 这个插件的功能比较多,它集成了编译、链接、运行、注释等许多IDE常用的功能。
下载地址:http://www.vim.org/scripts/script.php?script_id=213

5) echofunc.vim : Echo the function declaration in the command line for C/C++.
这个插件主要用于显示函数声明。
下载地址:http://www.vim.org/scripts/script.php?script_id=1735
 
6) stl.vim: Improved C++ STL syntax highlighting.
原来的vim对C++的语法高亮不支持像string、 vector之类的STL模板类。
下载地址:http://www.vim.org/scripts/script.php?script_id=2224

7) stlrefvim.vim: A C++ Standard Template Library reference manual.
这个插件让你轻松的拥有C++ STL的文档帮助
下载地址:http://www.vim.org/scripts/script.php?script_id=2353

知道了这个插件的作用之后就可以行动了,首先需要具备一些vim的基本知识:像如何使用插件(每个插件
都有它的安装帮助)、vim一些文件夹的作用(如plugin,syntax...)、vim键映射等。
建议在使用这些插件之前先读一读它的文档,了解一下这些插件的作用和主要的功能,并且看一下它的文件
结构,大概看一下它的源码,这样就方便你以后对插件的修改(如改变快捷键映射)。这个学习过程并不困
难也无须花大量的时间。

下面是我的vim配置文件

"基本配置
set mouse=a                 "启动鼠标功能
set nocompatible         "不兼容旧版本
set nu                   "显示行号
set tabstop=4            "tab=4
set shiftwidth=4         "缩进4
set wrap                 "折行
set ruler                "在vim窗口右下角显示光标位置
set ignorecase           "忽略大小写
"set hlsearch             "查找时高亮显示
set showmode             "显示当前工作模式

syntax enable            "打开色彩
syntax on                "打开语法高亮
set cindent              "使用C语言的缩进方式
set autoindent             "自动缩进
set showmatch            "显示括号配对
set smartindent          "智能对齐
"set whichwrap+=h,l      "使用h,l移动可以跨行
"set mps+=<:>            "让<>可以使用%跳转
"set foldmarker={{{,}}}

"备份相关配置
set nobackup            
set backupext=.bak      
set writebackup          "写备份但关闭vim后自动删除
"set backupdir=path      "设置备份路径

"Omnicppcomplete Configuration
"下面两行开启了vim三种智能
"1.自动识别file类型
"2.用file type plugin脚本
"3.使用缩进定义文件
"set nocompatible
filetype plugin on
filetype indent on
let OmniCpp_DefaultNamespaces=["std"]
let OmniCpp_MayCompleteScope=1
set completeopt=longest,menu          "关掉智能补全时的预览窗口
map <silent> <F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
set tags+=/usr/include/c++/4.2.4/tags

"Tlist Configuration  taglist.vim
let Tlist_Process_File_Always=1     "Always Process File
"let Tlist_Auto_Open=1              "Open Tlist when vim start
let Tlist_Enable_Fold_Column=1       
let Tlist_Exit_OnlyWindow=1         "If only Tlist window works, vim exit.
let Tlist_Sort_Type="name"          "sort by name
let Tlist_Show_One_File=1

"echofunc Configuration
let g:EchoFuncKeyPrev='<C-b>'
let g:EchoFuncKeyNext='<C-n>'

"trinity.vim: Build the trinity of srcexpl,taglist,
"NERD_tree to be a good IDE
nmap <F8> :TrinityToggleAll<CR>
nmap <F9> :TrinityToggleSourceExplorer<CR>
nmap <F10> :TrinityToggleTagList<CR>
nmap <F11> :TrinityToggleNERDTree<CR>



Mac/Centos下Vim配置及常用插件安装

vim常用插件介绍_第1张图片

版本需求

macbook yosemite是vim7.3
centos6.5上默认的是vim7.2,因为许多插件需要版本7.3以上支持,vim升级到了7.4。
注:其中taglist插件需要的ctags版本5.8,mac需要重新安装,centos 6.5默认自带ctags5.8。
因为安装基本相同,下边主要介绍macbook上的安装方法。

配置文件

set nocompatible              " be iMproved, required
filetype off                  " required

set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'gmarik/Vundle.vim'

" plugins

Plugin 'scrooloose/nerdtree'
Plugin 'bling/vim-airline'
Plugin 'mattn/emmet-vim'
Plugin 'godlygeek/tabular'
Plugin 'Shougo/neocomplcache.vim'
Plugin 'jelera/vim-javascript-syntax'
Plugin 'kien/ctrlp.vim'
Plugin 'terryma/vim-multiple-cursors'
Plugin 'tpope/vim-commentary'
Plugin 'jiangmiao/auto-pairs'

Plugin 'jQuery'
Plugin 'othree/html5.vim'

call vundle#end()            " required
filetype plugin indent on    " required

" settings

syntax enable
syntax on

let mapleader=','
let g:molokai_original = 1
let g:rehash256 = 1
set t_Co=256
colorscheme molokai

set termencoding=utf-8
set encoding=utf8
set fileencodings=utf8,ucs-bom,gbk,cp936,gb2312,gb18030
set cul

set laststatus=2
set number
set noshowmode

set tabstop=4
set shiftwidth=4
set softtabstop=4

set expandtab
set smarttab
set autoindent
set smartindent
set ruler
set ignorecase
set hls
set foldmethod=syntax
set showcmd

" backup

set nobackup
set nowb
set noswapfile

" search

set hlsearch
set incsearch

" backspace

set backspace=eol,start,indent
set whichwrap+=<,>,h,l

" javascript settings

au BufRead,BufNewFile jquery.*.js set ft=javascript syntax=jquery

" html5 settings

let g:html5_event_handler_attributes_complete = 0

" nerdtree settings

autocmd vimenter * NERDTree
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
map <silent> <F2> :NERDTreeToggle<CR>
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif

" airline settings

let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#left_sep = ' '
let g:airline#extensions#tabline#left_alt_sep = '|'

" ctags settings

let Tlist_Ctags_Cmd ='/usr/local/Cellar/ctags/5.8/bin/ctags'  "这里比较重要了,设置ctags的位置,不是指向MacOS自带的那个,而是我们用homebrew安装的那个,Centos下配置注销这行即可。

" taglist settings

let Tlist_Use_Right_Window = 1 "让taglist窗口出现在Vim的右边
let Tlist_File_Fold_Auto_Close = 1 "当同时显示多个文件中的tag时,设置为1,可使taglist只显示当前文件tag,其它文件的tag都被折叠起来。
let Tlist_Show_One_File = 1 "只显示一个文件中的tag,默认为显示多个
let Tlist_Sort_Type ='name' "Tag的排序规则,以名字排序。默认是以在文件中出现的顺序排序
let Tlist_GainFocus_On_ToggleOpen = 1 "Taglist窗口打开时,立刻切换为有焦点状态
let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim
let Tlist_WinWidth = 32 "设置窗体宽度为32,可以根据自己喜好设置
map <silent> <F9> :TlistToggle <CR>

" emment settings

let g:user_emmet_mode='n'    "only enable normal mode functions.
let g:user_emmet_mode='inv'  "enable all functions, which is equal to
let g:user_emmet_mode='a'    "enable all function in all mode.
let g:emmet_html5 = 0

let g:user_emmet_install_global = 0
autocmd FileType html,css EmmetInstall
" let g:user_emmet_leader_key='<C-Z>'

" let g:user_emmet_expandabbr_key='<Tab>'


" neocompletecache settings

let g:acp_enableAtStartup = 0
let g:neocomplcache_enable_at_startup = 1
let g:neocomplcache_enable_smart_case = 1
let g:neocomplcache_min_syntax_length = 3
let g:neocomplcache_lock_buffer_name_pattern = '\*ku\*'

inoremap <expr><C-g>     neocomplcache#undo_completion()
inoremap <expr><C-l>     neocomplcache#complete_common_string()

inoremap <expr><C-h> neocomplcache#smart_close_popup()."\<C-h>"
inoremap <expr><BS> neocomplcache#smart_close_popup()."\<C-h>"
inoremap <expr><C-y>  neocomplcache#close_popup()
inoremap <expr><C-e>  neocomplcache#cancel_popup()

autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS
autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags
autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS
autocmd FileType python setlocal omnifunc=pythoncomplete#Complete
autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags

" ctrlp settings

let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlP'

let g:ctrlp_working_path_mode = 'ra'
set wildignore+=*/tmp/*,*.so,*.swp,*.zip     " Linux/MacOSX

let g:ctrlp_user_command = 'find %s -type f'        " MacOSX/Linux

github上被star 2300次的vim的配置建议参考:https://github.com/amix/vimrc/tree/master/vimrcs,建议弄明白了再复制过来。

插件管理Vundle

Vundel : https://github.com/gmarik/Vundle.vim
Vundel常用命令

:BundleList 列出已经安装的插件
:BundleInstall 安装所有配置文件中的插件
:BundleInstall! 更新所有插件
:BundleSearch 搜索插件
:BundleClean! 根据配置文件删除插件

配色方案 molokai

和sublime text3 上的配色一样都是molokai
molokai:https://github.com/tomasr/molokai
下载colors文件夹,将molokai.vim 复制到~/.vim/colors 中即可。

常用插件

nerdtree

主要功能是一款文件浏览器,可以查看文件目录结构打开相应的文件。
nerdtree:https://github.com/scrooloose/nerdtree

Vundel 安装方法:

Plugin 'scrooloose/nerdtree'

ctrlp

就像名字它的快捷键就是ctrl+p 实现快速查找文件。
ctrlp:https://github.com/kien/ctrlp.vim

Vundel 安装方法:

Plugin 'kien/ctrlp.vim'

Emment

做前端的应该对这个挺熟过去是zencoding,非官方插件会有一些奇怪的bug。
Emment:https://github.com/mattn/emmet-vim/
默认快捷键 ctrl+y+,
Vundel 安装方法:

Plugin 'emmetio/emmet'

html5

支持html5标签
html5:https://github.com/othree/html5.vim
Vundel 安装方法:

Plugin 'othree/html5.vim'

vim-ariline

vim-ariline:https://github.com/bling/vim-airline
Vundel 安装方法:

Plugin 'bling/vim-airline'

问题:剪头显示不出来?
解决:
1、下载powerline font https://github.com/Lokaltog/powerline-fonts
2、mac直接找到powerline文件夹中的文件点击安装即可,同时去终端(terminal)选择你安装的powerline字体剪头即可显示正常。
相关文章:https://powerline.readthedocs.org/en/latest/installation.html#installation-patched-fonts

taglist

taglist:https://github.com/vim-scripts/taglist.vim
Vundel 安装方法:

Plugin 'vim-scripts/taglist.vim'

问题:taglist没有安装ctags无效?
解决:
1、下载ctags http://sourceforge.net/projects/ctags/files/ctags/
2、安装ctags
$ brew install ctags
3、ctags路径配置

" ctags settings
let Tlist_Ctags_Cmd ='/usr/local/Cellar/ctags/5.8/bin/ctags'  "这里比较重要了,设置ctags的位置,不是指向MacOS自带的那个,而是我们用homebrew安装的那个

neocomplcache

代码补全
taglist:https://github.com/Shougo/neocomplcache.vim

Vundel 安装方法:

Plugin 'Shougo/neocomplcache.vim'

vim-commentary

批量注释
commentary:https://github.com/tpope/vim-commentary

Vundel 安装方法:

Plugin 'tpope/vim-commentary'

auto-pairs

括号自动匹配
auto-pairs:https://github.com/jiangmiao/auto-pairs

Vundel 安装方法:

Plugin 'jiangmiao/auto-pairs'

vim-multiple-cursors

批量选取。默认快捷键是CTRL+N
vim-multiple-cursors:https://github.com/terryma/vim-multiple-cursors

总结

按照我上边的配置做前端开发肯定没问题了。

现在本人的生产工具是sublimetext,全平台vim也都装了下,还是比较复杂尤其是配置方面,暂时不会把工具切换过来,可能会在阿里云服务器linux平台多用一下,实现服务器端改一些东西。

vim需要强大之处就是强大的快捷键,实现无鼠标操作。实现这个就得需要背很多快捷键,我印象笔记就放了Vim常用命令、nerdtree快捷键、Vundle常用命令,建议装插件的时候都看看自带的文档,里边对插件的使用和快捷键有详细的介绍。

相关文章

  • 豆瓣DO轻量级文件加载和依赖管理库 Do.js

  • VIM:高亮代码、前端设计方面的vimrc的配置。

  • 火狐插件:vimperator 常用快捷键及配置文件

  • Sublime Text 3 安装及常用插件配置

  • sublime text2插件:autoprefixer 自动添加兼容前缀








你可能感兴趣的:(vim常用插件介绍)