zoukankan      html  css  js  c++  java
  • 高效vim插件

    目录[-]

    高效vim插件

         如果不熟悉vim的,请在使用vim插件之前,请先阅读 Vim学习指南, 建议通过前3个层次。以及有一个有趣的vim练习游戏http://vim-adventures.com/

    插件管理利器

        vim的插件原始安装容易混乱,而且管理起来,不方便。那么就渴望一个插件管理工具:pathogen

    简单安装:

    1
    2
    3
    mkdir -p ~/.vim/autoload ~/.vim/bundle;
    curl -Sso ~/.vim/autoload/pathogen.vim
        https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim

    详细请查看:https://github.com/tpope/vim-pathogen

    配置:

    在vimrc文件的filetype plugin之前·「没有的就在最前面」添加:

    1
    2
    call pathogen#infect()
    filetype plugin indent on
    ,记住,一定是vimrc,而不是gvimrc。可以参考我的vimrc配置

    高效插件集

    • eclim [java]
    • c.vim[C/C++]
    • vim-colorschemes
    请将这插件安装在$HOME/.vim/bundle目录下:

    NerdTree

    The NERD tree allows you to explore your filesystem and to open files and directories. It presents the filesystem to you in the form of a tree which you manipulate with the keyboard and/or mouse. It also allows you to perform simple filesystem operations.

    你可以使用Git这样安装:

    1
    2
    cd $HOME/.vim/bundle
    git clone https://github.com/scrooloose/nerdtree.git

    snipMate

    这个可以有。想快速写或者减少重复写代码,那么code snippets就是必须的,而对于vim来说,snipMate,你值得拥有。[ps:你可以在其snippets目录下找到对应语言的snippets,可以修改相应的snippets]。请到vim官网下载http://www.vim.org/scripts/script.php?script_id=2540。

    tagbar

    如果你使用过eclipse,那么它右边有个叫做Outline函数列表,对,tagbar就是这个效果。

    你可以使用Git这样安装:

    1
    2
    cd $HOME/.vim/bundle
    git clone https://github.com/majutsushi/tagbar.git

    vim-multiple-cursors

    这个插件具有Sublime Text的多光标编辑功能哟。

    你可以使用Git这样安装:

    1
    2
    cd $HOME/.vim/bundle
    git clone https://github.com/terryma/vim-multiple-cursors.git

    jedi-vim

    如果使用python的,有了它,爽歪歪。它拥有强大的提示能力。

    注意,刚开始我安装这个插件,总是报错,主要是vim没有--enable-pythoninterp 和没有安装jedi·「pip install jedi」,而且后来 在jedi-vim开发者David Halter提示下,在.bashrc中设置·「export PYTHONSTARTUP="$(python -m jedi repl)" 」就可以让python具有ipython的功能。很强大!

    你可以使用Git这样安装:

    1
    2
    cd $HOME/.vim/bundle
    git clone https://github.com/davidhalter/jedi-vim.git

    eclim 

    eclim 就是 eclipse 和 vim的有机结合。它充分利用了eclipse强大的提示功能,快捷键<c-x><c-u>

    按照官网安装之后,它会在.vim目录下生成eclim和plugin目录,请在bundle目录新建一个目录eclim,然后将这两个目录剪切到bundle/eclim目录中.这时它没有启动,还需要执行ECLIPSE目录中的eclimd。这个并没有列举出来。

    其实还可以加一个supertab插件,但是我习惯使用tab来代替空格,实际上一个tab是4个空格。所以并没有列举出来。

    你可以使用git这样安装:

    1
    2
    cd $HOME/.vim/bundle
    git clone https://github.com/ervandew/supertab.git

    c.vim

    请到这里去下载,这个不解释,很强大,官网有很详细的解释和帮助文档,对于c/c++来说不可缺少。

    vim-colorschemes

    保护视力,请从一个好的主题开始。那么vim-colorschemes中集成了很多的主题,个人比较爱好cobalt,不过有些主题只能在gvim中才能显示效果,而在vim中没有背景颜色等等问题。github去下载

    1
    2
    cd $HOME/.vim/bundle
    git clone https://github.com/upsuper/vim-colorschemes.git

    vim配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    " Uncomment the next line to make Vim more Vi-compatible
    " NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous
    " options, so any other options should be set AFTER setting 'compatible'.
    "set compatible
    set nocompatible
     
    " Vim5 and later versions support syntax highlighting. Uncommenting the next
    " line enables syntax highlighting by default.
    if has("syntax")
      syntax on
    endif
     
    " 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
    "endif
     
    " Uncomment the following to have Vim load indentation rules and plugins
    " according to the detected filetype.
    "if has("autocmd")
    "  filetype plugin indent on
    "endif
     
    call pathogen#infect()
     
    filetype plugin indent on
     
    " The following are commented out as they cause vim to behave a lot
    " differently from regular Vi. They are highly recommended though.
    set showcmd     " Show (partial) command in status line.
    "set showmatch      " Show matching brackets.
    "set ignorecase     " Do case insensitive matching
    set smartcase       " Do smart case matching
    "set incsearch      " Incremental search
    "set autowrite      " Automatically save before commands like :next and :make
    "set hidden             " Hide buffers when they are abandoned
    set mouse=a     " Enable mouse usage (all modes)
    set nu
    set tabstop=4
    set softtabstop=4
    " set shiftwidth=4
    set expandtab           " use whitespace instead of tab
    set autoindent
    set smartindent
    set cindent shiftwidth=4
    " set autoindent shiftwidth=4
    set foldmethod=indent
    set backspace=indent,eol,start
    set colorcolumn=80
     
     
    " === tagbar setting =======
    nmap <F4> :TagbarToggle<CR>   " shortcut
    let g:tagbar_width = 20      " tagbar's width, default 20
    autocmd VimEnter * nested :call tagbar#autoopen(1)  "automate to open tagbar
    let g:tagbar_left = 1       " on the left side
    "let g:tagbar_right = 1     " on the right side
    let NERDTreeIgnore=['.pyc', '.pyo', '.swp', '~'] " ignore *.py[co], *.swp and *~
    " =======end==================
     
    " switch window
    nnoremap <c-h> <c-w>h
    nnoremap <c-j> <c-w>j
    nnoremap <c-k> <c-w>k
    nnoremap <c-l> <c-w>l
     
    " ===== brace autocompletion =========
    inoremap ( ()<Esc>i
    inoremap [ []<Esc>i
    inoremap { {<CR>}<Esc>O
    autocmd Syntax html,vim inoremap < <lt>><Esc>i| inoremap > <c-r>=ClosePair('>')<CR>
    inoremap ) <c-r>=ClosePair(')')<CR>
    inoremap ] <c-r>=ClosePair(']')<CR>
    inoremap } <c-r>=CloseBracket()<CR>
    inoremap " <c-r>=QuoteDelim('"')<CR>
    inoremap ' <c-r>=QuoteDelim("'")<CR>
     
    function ClosePair(char)
     if getline('.')[col('.') - 1] == a:char
     return "<Right>"
     else
     return a:char
     endif
    endf
     
    function CloseBracket()
     if match(getline(line('.') + 1), 's*}') < 0
     return "<CR>}"
     else
     return "<Esc>j0f}a"
     endif
    endf
     
    function QuoteDelim(char)
     let line = getline('.')
     let col = col('.')
     if line[col - 2] == "\"
     "Inserting a quoted quotation mark into the string
     return a:char
     elseif line[col - 1] == a:char
     "Escaping out of the string
     return "<Right>"
     else
     "Starting a string
     return a:char.a:char."<Esc>i"
     endif
    endf
     
     
    " Source a global configuration file if available
    if filereadable("/etc/vim/vimrc.local")
        source /etc/vim/vimrc.local
    endif
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <span></span>
     
      
      
      
      
     <div>
     
     
      
      
      
      
     </div>

    一个实例

    这是我在写python nose插件nose-colorxunit时截图:

    http://my.oschina.net/swuly302/blog/156784

  • 相关阅读:
    教程:在 Visual Studio 中开始使用 Flask Web 框架
    教程:Visual Studio 中的 Django Web 框架入门
    vs2017下发现解决python运行出现‘No module named "XXX""的解决办法
    《sqlite权威指南》读书笔记 (一)
    SQL Server手工插入标识列
    hdu 3729 I'm Telling the Truth 二分图匹配
    HDU 3065 AC自动机 裸题
    hdu 3720 Arranging Your Team 枚举
    virtualbox 虚拟3台虚拟机搭建hadoop集群
    sqlserver 数据行统计,秒查语句
  • 原文地址:https://www.cnblogs.com/kungfupanda/p/4255652.html
Copyright © 2011-2022 走看看