• gvim配置


    参考资料: http://www.cnblogs.com/xiekeli/archive/2012/08/13/2637176.html

    环境:Windows7 旗舰版

    1、安装Gvim7.3 : 下载地址http://www.vim.org/download.php#pc

    2、安装中文帮助:vimcdoc-1.8.0-setup.exe 地址http://vimcdoc.sourceforge.net/

          会自动识别gvim的安装路径,

          安装完后,gvim菜单中文出现乱码,在_vimrcset文件中增加:

    " 配置多语言环境,解决中文乱码问题

    if has("multi_byte") 
        " UTF-8 编码 
        set encoding=utf-8 
        set termencoding=utf-8 
        set formatoptions+=mM 
        set fencs=utf-8,gbk 
        if v:lang =~? '^/(zh/)/|/(ja/)/|/(ko/)' 
            set ambiwidth=double 
        endif 
        if has("win32") 
            source $VIMRUNTIME/delmenu.vim 
            source $VIMRUNTIME/menu.vim 
            language messages zh_CN.utf-8 
        endif 
    else 
        echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte" 
    endif

         输入:help,显示中文帮助,说明安装成功:

    Image

    3、设置语法高亮

    编辑安装目录下的_vimrc文件(例如:我的在D:Program FilesVim)

         加入以下内容:

         set nu!

         colorscheme desert 
         syntax enable 
         syntax on

    再打开gvim,打开一个源代码文件:

    Image(1)

    这些设置使得gvim可以显示行号,并使用了desert配色方案,而且打开了语法高亮功能(用不同颜色显示注释、关键字、字符串等)。 
    我们还可以让函数名也高亮起来,

    这里对C、C++的代码进行配置:在D:Program FilesVimvim73syntax下找到 c.vim 和 cpp.vim,分别添加以下内容: 
    syn match cFunction "<[a-zA-Z_][a-zA-Z_0-9]*>[^()]*)("me=e-2 
    syn match cFunction "<[a-zA-Z_][a-zA-Z_0-9]*>s*("me=e-1 
    hi cFunction gui=NONE guifg=#B5A1FF

    重新打开gvim,效果如下:

    Image(2)

     

    4、程序中跳转

    将ec57w32.zip解压,在解压后将文件夹中的ctags.exe复制到D:ProgramFilesVimvim73下,并编辑_vimrc文件,添加以下内容: 
    set tags=tags; 
    set autochdir

    然后将D:ProgramFilesVimvim73加到环境变量的path中。在需要查看的源代码目录下执行命令ctags -R;然后再用gvim打开源代码文件:

    Image(3)

     

    按住“CTRL”键,点击对应的函数名或“CTRL+]”,会自动跳转到函数的定义部分,“CTRL+T”则返回;

    5、源代码分析工具 taglist

    将taglist_45.zip解压,解压后包含一个doc文件夹和一个plugin文件夹,将其中内容分别复制到d:Program FilesVimvim73下的doc及plugin中。 
    在_vimrc文件中加入以下内容: 
    let Tlist_Show_One_File=1 
    let Tlist_Exit_OnlyWindow=1

    Image(4)

     

    用gvim打开代码文件(已生成过tags文件),输入:Tlist,TagList窗口即出现在左侧。再输入:

    :Tlist,左侧栏消失;左侧栏列出了当前文件中的所有宏,  全局变量,  函数名等,  在查看代码时用这个窗口总揽全局,  切换位置相当方便

    Image(5)

     

     

    6、文件浏览组件 WinManager

    winmanager.zip 地址http://www.vim.org/scripts/download_script.php?src_id=754

    将winmanager.zip解压和拷贝,解压后包含一个doc文件夹和一个plugin文件夹,将其中内容分别复制到d:Program FilesVimvim73下的doc及plugin中

    在_vimrc文件中加入以下内容:

    let g:winManagerWindowLayout='FileExplorer|TagList' 
    nmap wm :WMToggle<cr>

    用gvim打开代码文件,normal状态下输入命令"wm",窗口如下:

    Image(6)

    左上角是浏览文件的窗口,左下角的是TagList窗口;

    7、多文档编辑

    minibufexpl.vim 地址http://www.vim.org/scripts/download_script.php?src_id=3640

    解压后将将minibufexpl.vim复制到d:Program FilesVimvim73plugin,在_vimrc中添加:

    let g:miniBufExplMapCTabSwitchBufs=1 
    let g:miniBufExplMapWindowsNavVim=1 
    let g:miniBufExplMapWindowNavArrows=1

    用GVIM打开多个源代码文件后,如图:

    Image(7)

    ctrl+Tab,切换到前一个buffer,并在当前窗口打开文件; 
    ctrl+shift+Tab,切换到后一个buffer,并在当前窗口打开文件; 
    ctrl+箭头键,可以切换到上下左右窗口中; 
    ctrl+h,j,k,l,切换到上下左右的窗口中。

     

    8、在工程中快速查找

    grep.vim 地址http://www.vim.org/scripts/download_script.php?src_id=7645

    解压后把grep.vim文件拷贝到d:Program FilesVimvim73plugin,在_vimrc中添加:

    nnoremap <silent> <F3> :Grep<CR>

    因为windows下是不带grep的,需要下载Grep for Windows http://gnuwin32.sourceforge.net/packages/grep.htm

    下载后在环境变量中增加grep的路径;

    用gvim打开一个源代码文件,光标选择需要查找的内容,按F3,确定要查找的内容和搜索范围,gvim会在弹出的QuickFix窗口中列出所有符合条件的搜索结果

    Image(8)

    9、hc切换(针对C、C++)

    下载插件:a.vim 地址http://www.vim.org/scripts/download_script.php?src_id=7218

    将a.vim复制到d:Program FilesVimvim73plugin,在_vimrc中添加: 
    nnoremap <silent> <F12> :A<CR> 
    用gvim打开源码文件后,按F12即可以在c/h文件中切换,也可以通过输入:A实现。

    10、高亮书签

    下载插件:visualmark.vim 地址http://www.vim.org/scripts/download_script.php?src_id=4700

    将visualmark.vim复制到d:Program FilesVimvim73plugin。 
    用gvim打开源码文件,将光标定位在需要添加书签的地方,按下ctrl+F2,即添加了书签。

    Image(9)

    使用F2在书签之间正向切换,shift+F2反向切换。

    11、Python代码补全

    下载插件pydiction-1.2.zip

    解压后,将里面的python_pydiction.vim文件复制到D:Program FilesVimvimfilesftplugin

    将complete-dict 和 pydiction.py复制到D:Program FilesVimvimfilesftpluginpydiction

    在_vimrc文件中增加配置如下:

    filetype plugin on  “启用filetype插件

    let g:pydiction_location = 'D:Program FilesVimvimfilesftpluginpydictioncomplete-dict' 
    let g:pydiction_menu_height = 20 ”设置弹出菜单的高度,默认是15

    用gvim打开一个py文件,输入row+[tab],就可以看到自动补全的代码选项了

    Image(10)

    12、python编译

    下载VimPdb,解压后拷贝VimPdb.py,VimPdb.vim到plugin即可。

    用vim代开python代码文件,按F5运行,然后按F2设置断点,在运行到断点后可以用按F12可以查看Stack Trace,F3查看变量和参数值。

    Image(11)

    不过这种方法使用了一下,经常会死掉,不知道为什么,所以在网上找到了另外一种方法:

    在_vimrc增加

    复制代码
    python << EOF
    import time
    import vim
    def SetBreakpoint():
        nLine = int( vim.eval( 'line(".")'))
        strLine = vim.current.line
        i = 0
        strWhite = ""
        while strLine[i] == ' ' or strLine[i] == "	":
            i += 1
            strWhite += strLine[i]
        vim.current.buffer.append(
           "%(space)spdb.set_trace() %(mark)s Breakpoint %(mark)s" %
             {'space':strWhite, 'mark': '#' * 30}, nLine - 1)
        for strLine in vim.current.buffer:
            if strLine == "import pdb":
                break
            else:
                vim.current.buffer.append( 'import pdb', 0)
                vim.command( 'normal j1')
                break
    vim.command( 'map <C-M> :py SetBreakpoint()<cr>')
     
    def RemoveBreakpoints():
        nCurrentLine = int( vim.eval( 'line(".")'))
        nLines = []
        nLine = 1
        for strLine in vim.current.buffer:
            if strLine == 'import pdb' or strLine.lstrip()[:15] == 'pdb.set_trace()':
                nLines.append( nLine)
            nLine += 1
        nLines.reverse()
        for nLine in nLines:
            vim.command( 'normal %dG' % nLine)
            vim.command( 'normal dd')
            if nLine < nCurrentLine:
                nCurrentLine -= 1
        vim.command( 'normal %dG' % nCurrentLine)
    vim.command( 'map <C-U> :py RemoveBreakpoints()<cr>')
    vim.command( 'map <C-D> :!python %<cr>')
    EOF
    复制代码

    然后在要调试的代码里面用ctrl-M设断点 
    ctrl-D运行

    13、Python代码检查

    下载pyflakes,解压缩后把pyflakes.vim文件和pyflakes目录拷贝套ftpluginpython目录中打开一个有问题的python源代码文件,执行命令:cc,即可进行代码检查:

    Image(12)

     补充说明:

           gvim配置字体:set guifont=Consolas:h14:cANSI

          

    完整配置如下:

    set nocompatible
    source $VIMRUNTIME/vimrc_example.vim
    source $VIMRUNTIME/mswin.vim
    behave mswin
    
    set diffexpr=MyDiff()
    function MyDiff()
      let opt = '-a --binary '
      if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
      if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
      let arg1 = v:fname_in
      if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
      let arg2 = v:fname_new
      if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
      let arg3 = v:fname_out
      if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
      let eq = ''
      if $VIMRUNTIME =~ ' '
        if &sh =~ '<cmd'
          let cmd = '""' . $VIMRUNTIME . 'diff"'
          let eq = '"'
        else
          let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . 'diff"'
        endif
      else
        let cmd = $VIMRUNTIME . 'diff'
      endif
      silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
    endfunction
    
    set number
    colorscheme murphy
    syntax enable
    syntax on
    if has("multi_byte") 
        " UTF-8 编码 
        set encoding=utf-8 
        set termencoding=utf-8 
        set formatoptions+=mM 
        set fencs=utf-8,gbk 
        if v:lang =~? '^/(zh/)/|/(ja/)/|/(ko/)' 
            set ambiwidth=double 
        endif 
        if has("win32") 
            source $VIMRUNTIME/delmenu.vim 
            source $VIMRUNTIME/menu.vim 
            language messages zh_CN.utf-8 
        endif 
    else 
        echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte" 
    endif
    
    "taglist
    let Tlist_Show_One_File=1 
    let Tlist_Exit_OnlyWindow=1
    
    "winManager
    let g:winManagerWindowLayout='FileExplorer|TagList' 
    nmap wm :WMToggle<cr>
    
    "minbuf
    let g:miniBufExplMapCTabSwitchBufs=1 
    let g:miniBufExplMapWindowsNavVim=1 
    let g:miniBufExplMapWindowNavArrows=1
    
    "ctags
    set tags=tags
    set autochdir
    
    "grep
    nnoremap <silent> <F3> :Grep<CR>
    
    "font
    set guifont=Consolas:h14:cANSI
    
    "indent
    set autoindent
    set cindent
    set smartindent
    set softtabstop=4
    set shiftwidth=4
    
    "highlight
    set showmatch
    set matchtime=5
    
    "search
    set hlsearch
    set incsearch
    
    "file
    filetype on
    
    "not vi
    set nocp
    
    "no backup
    set nobackup
    set noswapfile

    配置效果:

          

  • 相关阅读:
    各种redis的介绍:ServiceStack.Redis,StackExchange.Redis,CSRedis
    nginx 配置web服务
    安装Office Online Server
    买房哪些事?
    微服务演变:微服务架构介绍
    VUE 前端调用Base64加密,后端c#调用Base64解密
    程序员35岁前必须做完的事
    Vue 开发流程
    小程序快速认证
    vue页面打印成pdf
  • 原文地址:https://www.cnblogs.com/luosongchao/p/3887376.html
Copyright © 2020-2023  润新知