IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    dbpoo发表于 2014-10-17 05:41:05
    love 0

    vim

    版本需求

    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 :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 :TlistToggle

    " 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=''

    " let g:user_emmet_expandabbr_key=''


    " 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 = ''
    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常用命令,建议装插件的时候都看看自带的文档,里边对插件的使用和快捷键有详细的介绍。



沪ICP备19023445号-2号
友情链接