• 高效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

  • 相关阅读:
    DOM
    链接后加"/"与不加"/"的区别
    Tomcat启动脚本catalina.sh
    MVC 之AjaxHelper
    在MVC中使用async和await的说明
    禁用Flash P2P上传
    基于SpringBoot开发一个Restful服务,实现增删改查功能
    JavaScript学习总结
    Spring MVC 学习总结
    JS 将对象转换成字符 字符串转换成json对象
  • 原文地址:https://www.cnblogs.com/kungfupanda/p/4255652.html
Copyright © 2020-2023  润新知