基于 GVim 的 C/C++ IDE -- VimLite 介绍

来源:互联网 发布:养老保险商业险 知乎 编辑:程序博客网 时间:2024/04/30 04:19
转自:http://forum.ubuntu.org.cn/viewtopic.php?f=68&t=342932

VimLite

http://www.vim.org/scripts/script.php?script_id=3647
http://code.google.com/p/vimlite/

简介
一个基于 vim 的 C/C++ IDE. 主要包括以下三个模块:
- 项目管理
- 代码补全
- 程序调试

依赖
- python
- python-lxml
- gcc
- make
- gdb
- cscope

需要 gvim 7.3, 并且 +python, +netbeans_intg 特性, 并且在 .vimrc 中至少打开以下两个选项
代码:
set nocp
filetype plugin on


ubuntu 的话, 这样安装就OK了
代码:
sudo apt-get install python python-lxml build-essential gdb cscope


安装
- 解压下载的文件.
- 把 vimlite 目录的所有文件复制到 ~/.vimlite, 如果 ~/.vimlite 目录不存在, 新建之.
- 用 vim 打开 VimLite.vba, 运行 ':so %'.

使用
请查看帮助, 在 vim 运行 ':h VimLite.txt'.

--------------------------------------------------------------------------------
下面是简单的使用介绍

1. 安装完毕后, 运行以下命令开始
代码:
:VLWorkspaceOpen

附件:
Screenshot-<DEFAULT_WORKSPACE> ==VLWorkspace== - (~) - GVIM2.png
Screenshot-<DEFAULT_WORKSPACE> ==VLWorkspace== - (~) - GVIM2.png [ 31.17 KiB | 被浏览 9499 次 ]



2.按 "." (点), 弹出菜单, 选择 "New Workspace...", 会生成一个模拟 GUI 操作的缓冲区(我喜欢这样直观的操作)
附件:
Screenshot-<DEFAULT_WORKSPACE> New Workspace - (~) - GVIM2.png
Screenshot-<DEFAULT_WORKSPACE> New Workspace - (~) - GVIM2.png [ 62.67 KiB | 被浏览 9513 次 ]



3.按 <C-x><C-s> 或者在下面的 OK 按 <CR> (鼠标左键双击也可以)就可以创建一个工作区文件了

4.按 "." (点), 弹出菜单, 选择 "Create a New Project...", 根据提示操作就行了, 建议不要选 gcc 和 g++ 以外的东西, 因为没有测试过
附件:
Screenshot-<Test> New Project - (~) - GVIM2.png
Screenshot-<Test> New Project - (~) - GVIM2.png [ 79.09 KiB | 被浏览 9499 次 ]



5.建了个最简单的 "Hello World" 项目, 现在就可以编译运行了
编译
代码:
:VLWBuildActiveProject

运行
代码:
:VLWRunActiveProject

也可以按工具栏对应的按钮

6. 代码自动补全需要先建立个数据库, 在工作区缓冲的工作区名字那里按 "." (点) 弹出菜单, 选择 "Parse Workspace (Quick)" 生成数据库,
然后写代码的时候, 需要补全的时候, 按 <C-x><C-o> 就可以补全的了.
理论上, 你每次修改了源代码或者包含了新的头文件都需要重新选择 "Parse Workspace (Quick)" 生成数据库的. 建议打开以下几个选项来一点自动化
代码:
" 保存文件时, 自动 Parse 该文件
let g:VLWorkspaceParseFileAfterSave = 1
" 与上面的选项一起工作, 仅自动 Parse 头文件, 因为符号一般在头文件定义, 源文件的实现的信息一般没什么用
" 需要强制 Parse 当前文件的话, 用 :VLWParseCurrentFile 命令
let g:VLWorkspaceNotParseSourceAfterSave = 1


反正, 什么时候感觉符号不够新的时候, 就选择 "Parse Workspace (Quick)"
附件:
Screenshot-<Test> main.c + (~-Desktop-ABCDEFG-Test-First) - GVIM2.png
Screenshot-<Test> main.c + (~-Desktop-ABCDEFG-Test-First) - GVIM2.png [ 52.38 KiB | 被浏览 9499 次 ]



7. 项目设置什么的, 直接看项目行的弹出菜单吧, 只要对 gcc 的编译参数熟悉的话, 问题很简单, 或者用自己的 makefile 也可以
附件:
Screenshot-<Test> == First ProjectSettings == - (~) - GVIM2.png
Screenshot-<Test> == First ProjectSettings == - (~) - GVIM2.png [ 74.2 KiB | 被浏览 9499 次 ]



8. 调试的集成就比较低了, 现在是凑合能用, 点工具栏对应的按钮, 先启动 pyclewn, 再设置断点, 再运行, 然后看变量什么的, 有时候需要用命令查看具体的东东的, 具体看 pyclewn 的手册吧
附件:
Screenshot.png
Screenshot.png [ 238.24 KiB | 被浏览 9495 次 ]



一般我还会用 tagbar, 所以一般的工作状态是这样
附件:
Screenshot-1.png
Screenshot-1.png [ 131.23 KiB | 被浏览 9495 次 ]



最后由 fanhe 编辑于 2011-08-24 21:55,总共编辑了 2 次


_________________
评价: 5% Crazier  页首
 用户资料  
 
2 楼 
 文章标题 : Re: 基于 GVim 的 IDE -- VimLite 介绍
帖子发表于 : 2011-08-24 21:30 
头像
注册: 2007-03-24 23:45
帖子: 2357
送出感谢: 0 次
接收感谢: 9 次
下面补充一些其他的
我自己对于 VimLite 的设置
代码:
let g:VLWorkspaceSaveAllBeforeBuild = 1
let g:VLCCC_ItemSelectionMode = 10 "这个选项自己用的, 不要乱用
let g:VLWorkspaceParseFileAfterSave = 1
let g:VLWorkspaceNotParseSourceAfterSave = 1
let g:VLCalltips_IndicateArgument = 0
let g:VLCalltips_EnableSyntaxTest = 0
let g:VLWDbgSaveBreakpointsInfo = 0


cscope 的使用
一般不建议自动为项目生成 cscope 数据库(需要自动生成的话, 查看帮助打开选项), 都是需要创建数据库的时候运行
代码:
:VLWInitCscopeDatabase 1


需要更新的时候, 运行
代码:
:VLWUpdateCscopeDatabase


cscope 一般的使用直接 :h cscope 就知道了, 下面的键位绑定用于利用 cscope 数据库快速切换头/源文件的
代码:
nnoremap <silent> <C-\>a :call <SID>AlterSource()<CR>

function! s:AlterSource() "{{{
    let l:file = expand("%:t:r")
    let l:ext = expand("%:t:e")
    if l:ext == "c" || l:ext == "cpp"
        try
            exec 'cs find f \<' . l:file . ".h$"
        catch
            try
                exec 'cs find f \<' . l:file . ".hpp$"
            catch
                return
            endtry
            return
        endtry
    elseif l:ext == "h" || l:ext == "hpp"
        try
            exec 'cs find f \<' . l:file . ".c$"
        catch
            try
                exec 'cs find f \<' . l:file . ".cpp$"
            catch
                return
            endtry
            return
        endtry
    endif
endf
"}}}


Calltips
基本的 Calltips 肯定是支持的, 只是 vim 没有专门用于 calltips 的显示前端设施, 只能在命令行那里显示了
主要特色是支持基本的构造函数 calltips, 默认是 <A-p> 触发, <A-j> 和 <A-k> 切换
附件:
Screenshot-<wxWidgets> main.cpp + (~-Desktop-projects-wxWidgets-JustTest) - GVIM.png
Screenshot-<wxWidgets> main.cpp + (~-Desktop-projects-wxWidgets-JustTest) - GVIM.png [ 69.6 KiB | 被浏览 9469 次 ]



Quickfix
Quick 默认就是支持的, 直接 copen 打开, 每次构建都会更新它的内容的


----------------------------------------------------------------------------------------------
简单的来说, 就是这样了, 项目需要完善的还有不少, 下面列举一些
1. Omnicpp 的多线程实现, 用于实时更新数据库和屏蔽不必要的符号
2. 调试器的易用性
3. 重写个 minibufexp, 没有打开缓冲的标签列表实在不太方便

过去了


附件: VIMCCC_On_Windows.png
VIMCCC_On_Windows.png [ 161.67 KiB | 被浏览 8098 次 ]
VIMCCC_On_Linux.png
VIMCCC_On_Linux.png [ 255.68 KiB | 被浏览 8098 次 ]
0 0
原创粉丝点击