基于 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 中至少打开以下两个选项
ubuntu 的话, 这样安装就OK了
安装
- 解压下载的文件.
- 把 vimlite 目录的所有文件复制到 ~/.vimlite, 如果 ~/.vimlite 目录不存在, 新建之.
- 用 vim 打开 VimLite.vba, 运行 ':so %'.
使用
请查看帮助, 在 vim 运行 ':h VimLite.txt'.
--------------------------------------------------------------------------------
下面是简单的使用介绍
1. 安装完毕后, 运行以下命令开始
Screenshot-<DEFAULT_WORKSPACE> ==VLWorkspace== - (~) - GVIM2.png [ 31.17 KiB | 被浏览 9499 次 ]
2.按 "." (点), 弹出菜单, 选择 "New Workspace...", 会生成一个模拟 GUI 操作的缓冲区(我喜欢这样直观的操作)
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 [ 79.09 KiB | 被浏览 9499 次 ]
5.建了个最简单的 "Hello World" 项目, 现在就可以编译运行了
编译
运行
也可以按工具栏对应的按钮
6. 代码自动补全需要先建立个数据库, 在工作区缓冲的工作区名字那里按 "." (点) 弹出菜单, 选择 "Parse Workspace (Quick)" 生成数据库,
然后写代码的时候, 需要补全的时候, 按 <C-x><C-o> 就可以补全的了.
理论上, 你每次修改了源代码或者包含了新的头文件都需要重新选择 "Parse Workspace (Quick)" 生成数据库的. 建议打开以下几个选项来一点自动化
反正, 什么时候感觉符号不够新的时候, 就选择 "Parse Workspace (Quick)"
Screenshot-<Test> main.c + (~-Desktop-ABCDEFG-Test-First) - GVIM2.png [ 52.38 KiB | 被浏览 9499 次 ]
7. 项目设置什么的, 直接看项目行的弹出菜单吧, 只要对 gcc 的编译参数熟悉的话, 问题很简单, 或者用自己的 makefile 也可以
Screenshot-<Test> == First ProjectSettings == - (~) - GVIM2.png [ 74.2 KiB | 被浏览 9499 次 ]
8. 调试的集成就比较低了, 现在是凑合能用, 点工具栏对应的按钮, 先启动 pyclewn, 再设置断点, 再运行, 然后看变量什么的, 有时候需要用命令查看具体的东东的, 具体看 pyclewn 的手册吧
Screenshot.png [ 238.24 KiB | 被浏览 9495 次 ]
一般我还会用 tagbar, 所以一般的工作状态是这样
Screenshot-1.png [ 131.23 KiB | 被浏览 9495 次 ]
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
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 [ 31.17 KiB | 被浏览 9499 次 ]
2.按 "." (点), 弹出菜单, 选择 "New Workspace...", 会生成一个模拟 GUI 操作的缓冲区(我喜欢这样直观的操作)
附件:
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 [ 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
let g:VLWorkspaceParseFileAfterSave = 1
" 与上面的选项一起工作, 仅自动 Parse 头文件, 因为符号一般在头文件定义, 源文件的实现的信息一般没什么用
" 需要强制 Parse 当前文件的话, 用 :VLWParseCurrentFile 命令
let g:VLWorkspaceNotParseSourceAfterSave = 1
反正, 什么时候感觉符号不够新的时候, 就选择 "Parse Workspace (Quick)"
附件:
Screenshot-<Test> main.c + (~-Desktop-ABCDEFG-Test-First) - GVIM2.png [ 52.38 KiB | 被浏览 9499 次 ]
7. 项目设置什么的, 直接看项目行的弹出菜单吧, 只要对 gcc 的编译参数熟悉的话, 问题很简单, 或者用自己的 makefile 也可以
附件:
Screenshot-<Test> == First ProjectSettings == - (~) - GVIM2.png [ 74.2 KiB | 被浏览 9499 次 ]
8. 调试的集成就比较低了, 现在是凑合能用, 点工具栏对应的按钮, 先启动 pyclewn, 再设置断点, 再运行, 然后看变量什么的, 有时候需要用命令查看具体的东东的, 具体看 pyclewn 的手册吧
附件:
Screenshot.png [ 238.24 KiB | 被浏览 9495 次 ]
一般我还会用 tagbar, 所以一般的工作状态是这样
附件:
Screenshot-1.png [ 131.23 KiB | 被浏览 9495 次 ]
最后由 fanhe 编辑于 2011-08-24 21:55,总共编辑了 2 次
_________________
评价: 5% Crazier 页首
文章标题 : Re: 基于 GVim 的 IDE -- VimLite 介绍
发表于 : 2011-08-24 21:30
注册: 2007-03-24 23:45
帖子: 2357
送出感谢: 0 次
接收感谢: 9 次
下面补充一些其他的
我自己对于 VimLite 的设置
cscope 的使用
一般不建议自动为项目生成 cscope 数据库(需要自动生成的话, 查看帮助打开选项), 都是需要创建数据库的时候运行
需要更新的时候, 运行
cscope 一般的使用直接 :h cscope 就知道了, 下面的键位绑定用于利用 cscope 数据库快速切换头/源文件的
Calltips
基本的 Calltips 肯定是支持的, 只是 vim 没有专门用于 calltips 的显示前端设施, 只能在命令行那里显示了
主要特色是支持基本的构造函数 calltips, 默认是 <A-p> 触发, <A-j> 和 <A-k> 切换
Screenshot-<wxWidgets> main.cpp + (~-Desktop-projects-wxWidgets-JustTest) - GVIM.png [ 69.6 KiB | 被浏览 9469 次 ]
Quickfix
Quick 默认就是支持的, 直接 copen 打开, 每次构建都会更新它的内容的
----------------------------------------------------------------------------------------------
简单的来说, 就是这样了, 项目需要完善的还有不少, 下面列举一些
1. Omnicpp 的多线程实现, 用于实时更新数据库和屏蔽不必要的符号
2. 调试器的易用性
3. 重写个 minibufexp, 没有打开缓冲的标签列表实在不太方便
过去了
我自己对于 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
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
"}}}
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 [ 69.6 KiB | 被浏览 9469 次 ]
Quickfix
Quick 默认就是支持的, 直接 copen 打开, 每次构建都会更新它的内容的
----------------------------------------------------------------------------------------------
简单的来说, 就是这样了, 项目需要完善的还有不少, 下面列举一些
1. Omnicpp 的多线程实现, 用于实时更新数据库和屏蔽不必要的符号
2. 调试器的易用性
3. 重写个 minibufexp, 没有打开缓冲的标签列表实在不太方便
过去了
附件:
VIMCCC_On_Windows.png [ 161.67 KiB | 被浏览 8098 次 ]
VIMCCC_On_Linux.png [ 255.68 KiB | 被浏览 8098 次 ]
0 0
- 基于 GVim 的 C/C++ IDE -- VimLite 介绍
- GVIM C/C++ IDE
- windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)
- gvim/vim配置普通c++/c IDE
- Gvim配置(C++)IDE编程环境(windows下)
- 基于Eclipse IDE 的C/C++程序环境搭建
- C/C++的IDE
- linux下C/C++开发IDE介绍
- gvim 把c++/c设置成默认语言的方法
- C/C++ IDE的选择
- 寻求一款简易的C/C++IDE
- 基于MinGW的C/C++ IDE(参考尹成老师视频)
- C语言之循环队列的实战使用--基于stm32、keil IDE(四)
- gvim配置文件for C/C++
- Gvim、Gcc、cvim编译c
- gvim配置文件for C/C++
- 解决GVIM中C-A组合键不起作用的问题
- linux下c/c++ IDE开发工具介绍
- Hash欢乐赛
- Android 图片的浏览、缩放、拖动和自动居中
- C/C++指令 #undef ,#ifdef, #ifndef,#if的用法
- C#:USB设备枚举(二)设备枚举API
- 也谈Android中的Context(1)
- 基于 GVim 的 C/C++ IDE -- VimLite 介绍
- 项目开始编码前应确认哪些信息?
- 如何在Linux下格式化U盘以及修改卷标
- Microsoft Excel 2010错误:"此工作簿包含嵌入对象。Microsoft Excel 可能无法从这些对象中删除个人信息。"
- suse linux安装cmake时ccmake没有安装上的原因
- 向其他软件窗口、控件发送消息的方法
- 神奇输入法Fleksy免费开放Fleksy SDK,已集成多款应用
- iOS应用程序生命周期(前后台切换,应用的各种状态)详解
- C#:USB设备枚举(三)输出枚举信息到XML文档