当前位置:  开发笔记 > 编程语言 > 正文

C++ vim IDE.你需要的东西

如何解决《C++vimIDE.你需要的东西》经验,为你挑选了2个好方法。

我打算创建C++ IDE Vim可扩展插件.制作满足我自己需求的产品并不是问题.

这个插件将用于工作区,项目及其依赖项.
这适用于unix like system with gcc as c ++ compiler.

所以我的问题是你需要从IDE中获得哪些最重要的东西?请注意这是Vim,几乎所有的几乎都可以.

几个问题:
您经常使用其中的项目及其之间的关系来管理不同的工作区?这个过程中最烦人的事情是什么.
是否有必要从Makefile重新创建"项目"?
谢谢.

创建此插件的原因:

通过一堆插件和自编的插件,我们可以模拟大多数事情.当我们开展一个大型的"不定式"项目时,这是可以的.
当我们已经有一个makefile或jam文件时很好.我们必须创建自己的所有者时很糟糕,主要是通过复制和粘贴现有.
所有ctags和cscope相关的东西都必须知道真实项目文件的列表.我们创造了这样的.这个和许多类似的可能是一个很好的项目api函数,可以与现有和未来的插件配合使用.与现有makefile的合作有助于找出真实项目文件和可执行文件名称的列表.使用插件内部的插件系统,可以有不同的项目模板.

以上是我开始工作的一些原因.我想听听你的.



1> Luc Hermitte..:

有很多问题.其中大多数已经通过独立和通用插件解决.

关于什么是项目的定义.

给定同一目录中的一组文件,每个文件可以是项目的唯一文件 - 我总是有一个测试/目录,我托管宠物项目,或者我测试编译器的行为.相反,来自一组目录的文件可以是同一个非常大的项目的一部分.

最后,真正定义项目的是(叶子)"makefile" - 为什么要限制自己制作文件,scons,autotools,ant,(b)jam,aap?BTW,Sun-Makefiles或GNU-Makefiles?

此外,我认为让vim知道当前项目中的确切文件没有任何意义.即便如此,众所周知的project.vim插件已经完成了这项工作.我个人使用local_vimrc插件(我维护一个,我在SF上看过另外两个).有了这个插件,我只需要将一个_vimrc_local.vim文件放在一个目录中,其中定义的内容(:mappings,:functions,variables,:commands,:settings,...)将应用于该目录下的每个文件.目录 - 我处理一个有十几个子组件的大项目,每个组件都在自己的目录中,有自己的makefile(甚至没有名为Makefile,也没有目录的名称)

关于C++代码的理解

每当我们想要做一些复杂的事情(重构,比如重命名 - 函数,重命名 - 变量,生成 - 切换 - 来自当前变量 - 这是一个真实的......)时,我们需要vim来理解C++.大多数现有插件都依赖于ctags.不幸的是,ctags对C++的理解非常有限 - 我已经写了一些高级的东西,但我经常被ctags提供的糟糕信息所阻止.cscope并不是更好.最终,我认为我们必须集成一个先进的工具,如elsa/pork/ionk/deshydrata/....

NB:那就是现在,我集中了大部分精力.

关于Doxygen

我不知道跳转到与当前令牌相关联的doxygen定义有多困难.第一个难点是要了解光标的位置(我猜omnicppcomplete已经在这方面做了很多工作).第二个难点是要了解doxygen如何从代码中为每个符号生成页面名称.

使用greasemonkey插件,在doxygen页面的右侧代码中打开vim应该很简单.

关于调试器

对于那些在linux下运行vim并且使用gdb作为调试器的人来说,有一个pyclewn项目.不幸的是,它不支持像dbx这样的其他调试器.

对其他要求的回应:

当我运行或调试我编译的程序时,我想选择弹出一个对话框,询问命令行参数.它应该记住我用于项目的最后20个左右的参数.我不想为此编辑项目属性.

我的BuildToolsWrapper插件有一个g:BTW_run_parameters选项(可以使用project/local_vimrc解决方案轻松覆盖).添加映射以询问使用的参数非常简单.(参见:h inputdialog())

使用源控制系统

已经存在几个解决此问题的插件.这与C++无关,它不能由C++套件解决.



2> bayda..:

调试器

源代码导航工具(现在我使用的是http://www.vim.org/scripts/script.php?script_id=1638插件和ctags)

从ide编译lib/project/one源文件

按项目中的文件导航

使用源控制系统

轻松访问文件更改历史记录

重命名文件/变量/方法函数

轻松访问c ++帮助

轻松更改项目设置(Makefile,jam等)

路径/变量/方法/参数的快速自动填充

新范围的智能识别(如果开发人员有可能设置识别规则,那将是一件好事)

通过代码传递标识突出显示不正确(标签代替空格,";"后面的空格,"(或")"附近的空格等)

通过召集重新格式化选定的块


+代码片段.
推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有