zoukankan      html  css  js  c++  java
  • vim 插件配置博客记录

    本来打算自己写下各种经常使用vim的插件安装方法, 可是搜索了下, 发现别人都写过了, 在写一遍也没有意思, 特此记录.


    • Vim 经常使用命令

    http://blog.csdn.net/hittata/article/details/8096697

    命令 含义
    % 跳转到配对的括号去{}
    [[ 向前跳转到{代码块的开头处
    ]] 向后跳转到}代码块的结尾处
    gD 跳转到局部变量的定义处
    gg 跳转到文件开头
    G 跳转到文件末尾
    > 添加缩进,”x>”表示添加以下x行的缩进
    < 降低缩进,”x<”表示降低以下x行的缩进
    # 查找光标所在单词(先前)
    * 查找光标所在单词(向后)
    0 硬行首,纯粹行首第一个字符
    ^ 软行首,忽略掉空格的行首
    $ 行尾
    + 下一行行首,忽略掉空格的行首
    - 上一行行首,忽略掉空格的行首
    / 向后查找
    ? 向前查找
    n 查找下一个
    N 查找上一个
    w 光标移到下一个单词
    b 光标移到上一个单词
    E 或e 光标移动到词尾
    跳转到光标上次停靠的地方,是两个’, 而不是一个”

    • 基本配置
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " 显示相关  
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "set shortmess=atI   " 启动的时候不显示那个援助乌干达儿童的提示  
    "winpos 5 5          " 设定窗体位置  
    "set lines=40 columns=155    " 设定窗体大小  
    "set nu              " 显示行号  
    set go=             " 不要图形button  
    color dark     " 设置背景主题   
    syntax on           " 语法高亮  
    autocmd InsertLeave * se nocul  " 用浅色高亮当前行  
    autocmd InsertEnter * se cul    " 用浅色高亮当前行  
    "set ruler           " 显示标尺  
    set showcmd         " 输入的命令显示出来。看的清晰些  
    "set cmdheight=1     " 命令行(在状态行下)的高度,设置为1  
    "set whichwrap+=<,>,h,l   " 同意backspace和光标键跨越行边界(不建议)  
    "set scrolloff=3     " 光标移动到buffer的顶部和底部时保持3行距离  
    set novisualbell    " 不要闪烁(不明确)  
    set statusline=%F%m%r%h%w [FORMAT=%{&ff}] [TYPE=%Y] [POS=%l,%v][%p%%] %{strftime("%d/%m/%y - %H:%M")}   "状态行显示的内容  
    set laststatus=1    " 启动显示状态行(1),总是显示状态行(2)  
    set foldenable      " 同意折叠  
    set foldmethod=manual   " 手动折叠  
    "set background=dark "背景使用黑色 
    set nocompatible  "去掉讨厌的有关vi一致性模式,避免曾经版本号的一些bug和局限  
    " 显示中文帮助
    if version >= 603
        set helplang=cn
        set encoding=utf-8
    endif
    " 设置配色方案
    colorscheme desert
    " 设置字体和字号
    set guifont=Consolas 18
    
    " 不要使用vi的键盘模式,而是vim自己的
    set nocompatible
    " 语法高亮
    set syntax=on
    " 去掉输入错误的提示声音
    set noeb
    " 在处理未保存或仅仅读文件的时候,弹出确认
    set confirm
    " 自己主动缩进
    set autoindent
    set cindent
    " Tab键的宽度
    set tabstop=4
    " 统一缩进为4
    set softtabstop=4
    set shiftwidth=4
    " 不要用空格取代制表符
    set noexpandtab
    " 在行和段開始处使用制表符
    set smarttab
    " 显示行号
    set number
    " 历史记录数
    set history=1000
    "禁止生成暂时文件
    set nobackup
    set noswapfile
    "搜索忽略大写和小写
    set ignorecase
    "搜索逐字符高亮
    set hlsearch
    set incsearch
    "行内替换
    set gdefault
    "编码设置
    set enc=utf-8
    set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
    "语言设置
    set langmenu=zh_CN.UTF-8
    set helplang=cn
    " 我的状态行显示的内容(包括文件类型和解码)
    "set statusline=%F%m%r%h%w [FORMAT=%{&ff}] [TYPE=%Y] [POS=%l,%v][%p%%] %{strftime("%d/%m/%y - %H:%M")}
    "set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
    " 总是显示状态行
    set laststatus=2
    " 命令行(在状态行下)的高度。默觉得1,这里是2
    set cmdheight=2
    " 侦測文件类型
    filetype on
    " 加载文件类型插件
    filetype plugin on
    " 为特定文件类型加载相关缩进文件
    filetype indent on
    " 保存全局变量
    set viminfo+=!
    " 带有例如以下符号的单词不要被换行切割
    set iskeyword+=_,$,@,%,#,-
    " 字符间插入的像素行数目
    set linespace=0
    " 增强模式中的命令行自己主动完毕操作
    set wildmenu
    " 使回格键(backspace)正常处理indent, eol, start等
    set backspace=2
    " 同意backspace和光标键跨越行边界
    set whichwrap+=<,>,h,l
    " 能够在buffer的不论什么地方使用鼠标(相似office中在工作区双击鼠标定位)
    set mouse=a
    set selection=exclusive
    set selectmode=mouse,key
    " 通过使用: commands命令。告诉我们文件的哪一行被改变过
    set report=0
    " 在被切割的窗体间显示空白。便于阅读
    set fillchars=vert: ,stl: ,stlnc:
    " 高亮显示匹配的括号
    set showmatch
    " 匹配括号高亮的时间(单位是十分之中的一个秒)
    set matchtime=1
    " 光标移动到buffer的顶部和底部时保持3行距离
    set scrolloff=3
    " 为C程序提供自己主动缩进
    set smartindent
    " 高亮显示普通txt文件(须要txt.vim脚本)
    au BufRead,BufNewFile *  setfiletype txt 

    • vim miniBufexplorer 打开的文件缓存浏览器

    http://blog.csdn.net/hittata/article/details/8097805

    1. miniBufexplorer 为vim插件,直接解压复制到相关文件夹就可以,
      下载官方地址:
      http://www.vim.org/scripts/script.php?

      script_id=159
      minibufexpl.vim
      minibufexpl.vim 复制到 $HOME/.vim/plugin文件夹下

    2. $HOME/.vimrc 中加入例如以下配置

          let g:miniBufExplMapWindowNavVim = 1 
          let g:miniBufExplMapWindowNavArrows = 1 
          let g:miniBufExplMapCTabSwitchBufs = 1 
          let g:miniBufExplModSelTarget = 1
      
    3. 解决FileExplorer窗体变小问题 须在$HOME/.vimrc中加入:
      “解决FileExplorer窗体变小问题

      let g:bufExplorerMaxHeight=30
      let g:miniBufExplorerMoreThanOne=0
      

    • NertTree 文件文件夹树

    http://www.cnblogs.com/feichexia/archive/2012/11/07/Vim_NerdTree.html

    http://www.vim.org/scripts/script.php?script_id=1658 下载。然后解压,将解压得到的plugin和doc文件夹与HOME/.vimHOME/.vimrc文件里添加以下配置代码:

    ” 设置NerdTree

        map <F3> :NERDTreeMirror<CR>
        map <F3> :NERDTreeToggle<CR>
    

    按F3就可以显示或隐藏NerdTree区域了。

    假设你不喜欢文件夹树在左边, 能够加入

        let NERDTreeWinPos  = "right"
    

    • TagBar 函数(变量)列表

    tagbar是一个taglist的替代品,比taglist更适合c++使用,函数能够按类区分,支持按类折叠显示等。显示结果清晰简洁。强烈推荐。下载地址例如以下:
    http://www.vim.org/scripts/script.php?

    script_id=3465

    安装方式 :

     vim tagbar.vba
        :so %
        :q

    快捷键打开/关闭

        nnoremap <silent> <F3> :TagbarToggle<CR>
    

    设置属性

        let g:tagbar_width = 30 
        let g:tagbar_left = 1 
    

    加入你自己的tags文件

        set tags+= xxx
    

    在vim下运行 :

    :!ctags -R *

    然后就能够通过G来跳转到相应的定义处了。


    cscope 跳转

    一 下载安装
    1. 检測是否

    vim --version |grep cscope
    +cryptv +cscope +cursorshape +dialog_con +diff +digraphs -dnd -ebcdic 
    1. 下载:cscope 源代码
      http://cscope.sourceforge.net/
      http://sourceforge.net/projects/cscope/files/cscope/
    2. 安装:
      如未安装flex,须要先安装flex

      yum install flex
      ./configure
      make
      make install
      ```
      

      上述不行,使用以下命令:

      make distclean
      ./configure --with-flex
      make
      

      二 生成cscope文件列表和数据库:

    生成脚本:

    #!/bin/bash  
    echo "Begin TO Generage cscope.files..."  
    find . -name "*.h" -o -name "*.c" -o -name "*.cc" > cscope.files  
    ls -l  cscope.files  
    
    echo "Begin TO Generage cscope.out"  
    cscope -Rbq -i cscope.files -I /usr/local/mysql/include  
    ls -l  cscope.*  
    
    echo "Begin TO Generage tags"  
    ctags -R  
    ls -l tags   
    
    echo "Complete Successfully"  

    cscope 选项说明:-I选项将自己要包括的头文件加入进去。

    -R: 在生成索引文件时。搜索子文件夹树中的代码
    -b: 仅仅生成索引文件。不进入cscope的界面
    -k: 在生成索引文件时。不搜索/usr/include文件夹
    -q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
    -i: 假设保存文件列表的文件名称不是cscope.files时,须要加此选项告诉cscope到哪儿去找源文件列表。能够使用“-”。表示由标准输入获得文件列表。

    -I dir: 在-I选项指出的文件夹中查找头文件 -u: 扫描全部文件,又一次生成交叉索引文件 -C: 在搜索时忽略大写和小写 -P path: 在以相对路径表示的文件前加上的path。这样,你不用切换到你数据库文件所在的文件夹也能够使用它了。 -I 选项很实用,用于将其它开发库头文件导入到cscope数据库,方便产看。开发;

    三.cscope 与vim 集成设置:
    须要在.vimrc中加入例如以下配置

    """"""""""""""""""""""""""""""  
    " Cscope Config  
    """"""""""""""""""""""""""""""  
    nmap <S-F10> :!creat_cscope<CR>
    nmap <S-F11> :cs add cscope.out<CR>
    nmap <A-F> :cs find s <C-R>=expand("<cword>")<CR><CR>  
    nmap csg :cs find g <C-R>=expand("<cword>")<CR><CR>  
    nmap csc :cs find c <C-R>=expand("<cword>")<CR><CR>  
    nmap cst :cs find t <C-R>=expand("<cword>")<CR><CR>  
    nmap cse :cs find e <C-R>=expand("<cword>")<CR><CR>  
    nmap csf :cs find f <C-R>=expand("<cfile>")<CR><CR>  
    nmap csi :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>  
    nmap csd :cs find d <C-R>=expand("<cword>")<CR><CR> 
    "-------------------------------- Cscope -------------------------------------------
    " Using 'Control- + key' makes the vim window split vertically,
    " with search result displayed in the window
    " 's' symbol: find all references to the token under cursor
    nnoremap <C->s :vert scs find s <C-R>=expand("<cword>")<CR><CR>
    " 'g' global: find global definition(s) of the token under cursor
    nnoremap <C->g :vert scs find g <C-R>=expand("<cword>")<CR><CR>
    " 'c' calls: find all calls to the function name under cursor
    nnoremap <C->c :vert scs find c <C-R>=expand("<cword>")<CR><CR>
    " 't' text: find all instances of the text under cursor
    nnoremap <C->t :vert scs find t <C-R>=expand("<cword>")<CR><CR>
    " 'e' egrep: egrep search for the word under cursor
    nnoremap <C->e :vert scs find e <C-R>=expand("<cword>")<CR><CR>
    " 'f' file: open the filename under cursor
    nnoremap <C->f :vert scs find f <C-R>=expand("<cfile>")<CR><CR>
    " 'i' includes: find files that include the filename under cursor
    nnoremap <C->i :vert scs find i <C-R>=expand("<cfile>")<CR><CR>
    " 'd' called: find functions that function under cursor calls
    nnoremap <C->d :vert scs find d <C-R>=expand("<cword>")<CR><CR>
    
    
    
    " using 'alt+key' search result in a new buffer
    " we cannot use <A-key> to map 'alt-key' directly in terminal
    " because when press alt in terminal it will be translated to <Esc>
    " I use set to combine the 'alt-key' to a virtual multi-byte character
    " which  first byte is <Esc> (like F1), and the benefit is ttimeoutlen
    " affect it instead of timeoulen
    if has("gui_running")
        " disable alt key in gvim to make our mapping working
        set guioptions-=m
    else 
        set <M-f>=f
        set <M-g>=g
        set <M-t>=t
        set <M-c>=c
        set <M-e>=e
        set <M-o>=o
        set <M-i>=i
        set <M-d>=d
    endif
    " I use alt-f to map 'find s' to keep my habit on windows
    " then i must use alt-o not alt-f to map 'find f'
    nnoremap <M-f> :cs find s <C-R>=expand("<cword>")<CR><CR>
    nnoremap <M-g> :cs find g <C-R>=expand("<cword>")<CR><CR>
    nnoremap <M-c> :cs find c <C-R>=expand("<cword>")<CR><CR>
    nnoremap <M-t> :cs find t <C-R>=expand("<cword>")<CR><CR>
    nnoremap <M-e> :cs find e <C-R>=expand("<cword>")<CR><CR>
    nnoremap <M-o> :cs find f <C-R>=expand("<cfile>")<CR><CR>
    nnoremap <M-i> :cs find i <C-R>=expand("<cfile>")<CR><CR>
    nnoremap <M-d> :cs find d <C-R>=expand("<cword>")<CR><CR>

    四.cscope 和 quickfix使用
    :cs find 的选项

    0或则S:查找本符号
    1或则G:查找本定义
    2或则D:查找本函数调用的函数
    3或则C:查找调用本函数的函数
    4或则T:查找本字符串
    6或则E:查找本EGREP模式
    7或则F:查找本文件
    8或则I:查找包括本文件的文件
    

    quickfix用法:

    1.调出办法  :cw   
    2.关闭办法 再一次:cw   或者在激活状态下:q
    3.显示列表移动
    :cn // 切换到下一个结果
    :cp // 切换到上一个结果
    

    • Mark 单词高亮

    http://www.2cto.com/os/201208/148806.html

    下载

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

    高亮的用法:

    Normal mode:

        Vim的Normal mode中。
    
        m 用来使得光标处的单词着色
    
        
     使得原先着色的单词取消着色
    
        
      输入
    后再输入正則表達式。能够高亮匹配的相关单词
    

    关闭swap 缓存! 这样多个vim打开同一个文件就没有警告了。

    " ---- no swap file 
    set nobackup
    set noswapfile
    set nowritebackup

    clewn 进行DEBUG 配置。

    "-------------- clewn ------------
    "------------------------------------ clewn  ----------------------------------------
    "add break point
    nmap <silent> <C-B> :nbkey C-B<CR>
    "clear break point
    nmap <silent> <C-E> :nbkey C-E<CR>
    "next source line, skipping all function calls
    nmap <silent> <F10> :nbkey C-N<CR>
    "step into
    nmap <silent> <F11> :nbkey S-S<CR>
    "step out
    nmap <silent> <F12> :nbkey S-F<CR>
    "continue
    nmap <silent> <F5> :nbkey S-C<CR>



    假设你看到这里 , 说明你对上面的东西不慎惬意 , 没关系 , 以下这个另一个博客

    http://ju.outofmemory.cn/entry/79671

    希望能满足你 .

  • 相关阅读:
    jq的遍历与杂项
    jq的事件
    jquery的效果
    jquery入门
    面向对象。对象的继承
    面向对象克隆对象
    面向对象this指向问题
    实例对象及原型链
    GCD多线程任务总结
    C语言链表的简单实用
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7095133.html
Copyright © 2011-2022 走看看