博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】Winxp下 gvim 编程环境搭建
阅读量:2225 次
发布时间:2019-05-09

本文共 6187 字,大约阅读时间需要 20 分钟。

 from:


Winxp下 gvim 编程环境搭建

 

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
安装 解压到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

 

你可能感兴趣的文章
Intellij IDEA使用(六)—— 使用Intellij IDEA创建Java项目并配置jar包
查看>>
Eclipse使用(十)—— 使用Eclipse创建简单的Maven Java项目
查看>>
Eclipse使用(十一)—— 使用Eclipse创建简单的Maven JavaWeb项目
查看>>
Intellij IDEA使用(十三)—— 在Intellij IDEA中配置Maven
查看>>
面试题 —— 关于main方法的十个面试题
查看>>
集成测试(一)—— 使用PHP页面请求Spring项目的Java接口数据
查看>>
使用Maven构建的简单的单模块SSM项目
查看>>
Intellij IDEA使用(十四)—— 在IDEA中创建包(package)的问题
查看>>
FastDFS集群架构配置搭建(转载)
查看>>
HTM+CSS实现立方体图片旋转展示效果
查看>>
FFmpeg 命令操作音视频
查看>>
问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题
查看>>
目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备
查看>>
问题:Mysql中字段类型为text的值, java使用selectByExample查询为null
查看>>
程序员--学习之路--技巧
查看>>
解决问题之 MySQL慢查询日志设置
查看>>
contOS6 部署 lnmp、FTP、composer、ThinkPHP5、docker详细步骤
查看>>
TP5.1模板布局中遇到的坑,配置完不生效解决办法
查看>>
PHPstudy中遇到的坑No input file specified,以及传到linux环境下遇到的坑,模板文件不存在
查看>>
TP5.1事务操作和TP5事务回滚操作多表
查看>>