• Winxp下 gvim 编程环境搭建


    转自:http://blog.csdn.net/minico/archive/2007/12/15/1938050.aspx

    1.官方网站下载最新的gvim7.1 win32,然后选择完全安装;我是安装在d:\vim目录下面,安装后的目录结构如下:
    D:\VIM
    ├─vim71
    │ ├─autoload
    │ ├─colors
    │ ├─compiler
    │ ├─doc
    │ ├─ftplugin
    │ ├─indent
    │ ├─keymap
    │ ├─lang
    │ ├─macros
    │ ├─plugin
    │ ├─spell
    │ ├─syntax
    │ ├─tools
    │ └─tutor
    └─vimfiles
    ├─after
    ├─autoload
    ├─colors
    ├─compiler
    ├─doc
    ├─ftdetect
    ├─ftplugin
    ├─indent
    ├─keymap
    ├─plugin
    └─syntax

    2.安装常用插件:

    vimdoc http://vcd.gro.clinux.org    (中文)
    安装 直接安装即可,安装时会自动搜索到vim的安装位置,然后安装到相应的目录
    使用 :h
    说明 中文帮助文档
    taglist http://www.vim.org/scripts/script.php?script_id=273
    安装 解压到vim71目录下面
    使用 :Tlist
    说明 需要Ctags产生的tags文件配合
    WinManager http://www.vim.org/scripts/script.php?script_id=95
    安装 解压到vim71目录下面
    使用 wm,这个命令是通过在_vimrc中配置后才能有,具体配置见后面的_vimrc文件
    说明 此插件的作用是将TagList窗口和netrw窗口整合起来
    Ctags http://ctags.sourceforge.net
    安装 解压到vim71目录下面
    使用 ctags -R --c++-kinds=+p --fields=+iaS --extra=+q src
    在对C++文件进行补全时,OmniCppComplete插件需要在标签文件中包含C++的额外信息,因此上面的ctags命令不同于以前我们所使用的,它专门为C++语言生成一些额外的信息.
    说明 其实只是一个ctags.exe文件,用来产生tags文件供其它插件使用
    MiniBufExplorer http://www.vim.org/scripts/script.php?script_id=159
    安装 将minibufexpl.vim 到vim71/plugin 文件夹中即可;
    使用 打开多个文件后,自动在顶端出现文件标签,双击鼠标或者Ctrl+tab键可以切换文件;
    说明  
    grep http://www.vim.org/scripts/script.php?script_id=311
    安装 将grep.vim 到vim71/plugin 文件夹中即可;
    使用 安装后会在菜单=》工具中增加search子菜单,也可以用命令:grep或者按照后面给出的_vimrc文件映射快捷键F3
    说明 需要windows版本的grep.exe程序配合;
    到http://unxutils.sourceforge.net/下载unxutils工具包里面包含grep.exe,把grep.exe放到系统c:\windows\system32下面即可。
    omnicppcomplete http://www.vim.org/scripts/script.php?script_id=1520
    安装 解压到vimfiles目录下面
    使用 配合后面的supertab插件,使用Tab键进行自动完成;
    说明 如果要对c++文件进行自动完成,需要生成tag文件时用特殊的选项,见后面的_vimrc配置文件
    a http://www.vim.org/scripts/script.php?script_id=31
    安装 将a.vim 到vim71/plugin 文件夹中即可;
    使用 :A
    说明 在源文件和头文件之间进行切换
    Supertab http://www.vim.org/scripts/script.php?script_id=1643
    安装 将supertab.vim 到vim71/plugin 文件夹中即可;
    使用 配合前面的omnicppcomplete插件,使用Tab键进行自动完成;
    说明  
    NERD_commenter http://www.vim.org/scripts/script.php?script_id=1218
    安装 解压到vim71目录下面
    使用 http://xiaobo.spaces.live.com/blog/cns!5ec21dee9b73c1a8!814.entry
    说明  
    lookupfile http://www.vim.org/scripts/script.php?script_id=1581
    安装 解压到vimfiles目录下面
    使用 根据后面的_vimrc配置文件,使用F5键打开搜索窗口;Tab键进行选择
    说明 依赖于插件genutils
    genutils http://www.vim.org/scripts/script.php?script_id=197
    安装 解压到vimfiles目录下面
    使用 这个插件提供了一些通用的函数,可供其它的脚本使用
    说明 供lookupfile插件使用

     

    clearcase http://p.blog.csdn.net/images/p_blog_csdn_net/minico/EntryImages/20081123/gvim.JPG
    安装 解压到vimfiles目录下面
    使用 这个插件提供一些常用的clearcase命令
    说明
    3._vimrc配置文件

     

    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

    "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    " Add by minico---begin
    "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    "设置帮助语言
    set helplang=cn,en

    "把gui的工具栏去掉(要去掉,把等号前面的加号变成一个减号即可)
    set guioptions+=T

    "把gui的右边的滑动条去掉
    set guioptions+=r

    "把gui的左边的滑动条去掉
    set guioptions-=L

    "把gui的菜单去掉
    set guioptions+=m
    filetype on
    let Tlist_Show_Menu = 1

    " 这项必须设定,否则出错,配置taglist的ctags路径
    "let Tlist_Ctags_Cmd = 'D:\Vim\vim71\ctags.exe'


    "设置Taglist
    let Tlist_Show_One_File=1
    let Tlist_Exit_OnlyWindow=1

    " 使用F8打开Taglist
    nnoremap <silent> <F8> :TlistToggle<CR>

    "设置窗口大小和位置
    set lines=80
    set columns=200
    winpos 0 0

    "设置tags文件路径
    set tags=G:\lwip\tags

    "设置文件浏览器窗口显示方式
    "通过WinManager插件来将TagList窗口和netrw窗口整合起来
    let g:winManagerWindowLayout='FileExplorer|TagList'
    nmap wm :WMToggle<cr>

    "设置SuperTab,用tab键打开cppcomplet的自动补全功能。
    let g:SuperTabRetainCompletionType=2
    let g:SuperTabDefaultCompletionType="<C-X><C-O>"

    "显示行号
    set number

    "打开语法高亮显示功能
    syntax enable
    syntax on

    "设置主题颜色
    colorscheme desert

    "则可以用<C-h,j,k,l>切换到上下左右的窗口中去
    let g:miniBufExplMapWindowNavVim = 1

    "按F12时在一个新的buffer中打开c\h文件
    nnoremap <silent> <F12> :A<CR>

    "用F3调用grep查找当前光标所在处的字符串
    nnoremap <silent> <F3> :Grep<CR>

    "为了使用智能补全,打开文件类型检测,关闭VI兼容模式
    filetype plugin indent on
    set nocp

    "关掉智能补全时的预览窗口,这样可以防止闪屏现象
    set completeopt=longest,menu

    "====================Lookupfile 相关设置========================================

    let g:LookupFile_MinPatLength = 2               "最少输入2个字符才开始查找
    let g:LookupFile_PreserveLastPattern = 0        "不保存上次查找的字符串
    let g:LookupFile_PreservePatternHistory = 1     "保存查找历史
    let g:LookupFile_AlwaysAcceptFirst = 1          "回车打开第一个匹配项目
    let g:LookupFile_AllowNewFiles = 0              "不允许创建不存在的文件
    if filereadable("./filenametags")                "设置tag文件的名字
        let g:LookupFile_TagExpr = '"./filenametags"'
    endif
    "nmap <silent> <leader>lk <Plug>LookupFile<cr>   "映射LookupFile为,lk
    "nmap <silent> <leader>ll :LUBufs<cr>            "映射LUBufs为,ll
    "nmap <silent> <leader>lw :LUWalk<cr>            "映射LUWalk为,lw

    "有了上面的定义,当我输入”,lk”时,就会在tag文件中查找指定的文件名;
    "当输入”,ll”时,就会在当前已打开的buffer中查找指定名字的buffer;
    "当输入”,lw”时,就会在指定目录结构中查找。

    "在用lookupfile插件查找文件时,是区分文件名的大小写的,
    "如果想进行忽略大小写的匹配,把下面这段代码加入你的vimrc中,
    "就可以每次在查找文件时都忽略大小写查找了:

    " lookup file with ignore case
    function! LookupFile_IgnoreCaseFunc(pattern)
        let _tags = &tags
        try
            let &tags = eval(g:LookupFile_TagExpr)
            let newpattern = '\c' . a:pattern
            let tags = taglist(newpattern)
        catch
            echohl ErrorMsg | echo "Exception: " . v:exception | echohl NONE
            return ""
        finally
            let &tags = _tags
        endtry

        " Show the matches for what is typed so far.
        let files = map(tags, 'v:val["filename"]')
        return files
    endfunction
    let g:LookupFile_LookupFunc = 'LookupFile_IgnoreCaseFunc'

    "====================Lookupfile 相关设置 end========================================

    "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    " Add by minico---end
    "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

     

    4.实际效果:

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    5.参考文档:

    (1)http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx

    (2)http://blog.csdn.net/easwy/category/234641.aspx

  • 相关阅读:
    logging模块,序列化,range模块
    生成器以及推导式
    递归,自定义模块,time模块,datetime
    装饰器,内置函数
    函数名的使用以及第一类对象,闭包,迭代器
    python文件操作
    面向对象
    os sys hashlib
    文件操作
    logging模块
  • 原文地址:https://www.cnblogs.com/hnrainll/p/2026006.html
Copyright © 2020-2023  润新知