gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 22:03:23 25 4
gpt4 key购买 nike

我打算创建 C++ IDE Vim 可扩展的插件。做一个能满足我自己需求的不是问题。

此插件将与工作区、项目及其依赖项一起使用。
这适用于使用 gcc 作为 c++ 编译器的类 unix 系统。

所以我的问题是,您需要 IDE 提供的最重要的东西是什么?请注意,这是 Vim,几乎所有,几乎,都是可能的。

几个问题:
您多久管理一次不同的工作空间,其中包含项目以及它们之间的关系?这个过程中最烦人的事情是什么。
是否有必要从 Makefile 重新创建“项目”?
谢谢。

创建此插件的原因:

通过一堆插件和自写的插件,我们可以模拟大多数事情。当我们在一个大的“不定式”项目上工作时是可以的。
当我们已经有一个 makefile 或 jam 文件时很好。当我们必须创建自己的内容时很糟糕,主要是通过复制和粘贴现有的。
所有与 ctags 和 cscope 相关的东西都必须了解真实项目文件的列表。我们创造了这样的。这个 和许多类似的可能是一个很好的项目 api 函数,可以与现有和 future 的插件合作。与现有的 makefile 合作可以帮助找出真正的项目文件列表和可执行文件名称。插件内有插件系统,可以有不同的项目模板。

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

最佳答案

存在多个问题。其中大部分已经通过独立的通用插件解决了。

关于什么是项目的定义。

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

最后,真正定义项目的是(叶)“makefile”——为什么要限制我们使用 makefile,scons、autotools、ant、(b)jam、aap 呢?顺便说一句,Sun-Makefile 还是 GNU-Makefile?

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

关于C++代码理解

每次我们想要做一些复杂的事情(如 rename-function、rename-variable、generate-switch-from-current-variable-which-is-an-enum 等重构),我们都需要 vim对 C++ 的理解。大多数现有插件都依赖于 ctags。不幸的是,ctags 对 C++ 的理解非常有限——我已经写了一个 few advanced things ,但我经常被 ctags 提供的不良信息所阻止。 cscope 也好不到哪里去。最终,我认为我们将不得不集成一个高级工具,例如 elsa/pork/ionk/deshydrata/....

注意:这就是我现在最努力的地方。

关于氧气

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

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

关于调试器

pyclewn project对于那些在 linux 下运行 vim 并使用 gdb 作为调试器的人。不幸的是,它不支持 dbx 等其他调试器。

对其他要求的回应:

  • When I run or debug my compiled program, I'd like the option of having a dialog pop up which asks me for the command line parameters. It should remember the last 20 or so parameters I used for the project. I do not want to have to edit the project properties for this.

我的BuildToolsWrapper plugin有一个 g:BTW_run_parameters 选项(很容易被 project/local_vimrc 解决方案覆盖)。添加一个映射来询问要使用的参数非常简单。 (见 :h inputdialog())

  • work with source control system

已经有几个插件解决了这个问题。这与 C++ 无关,不能由 C++ 套件解决。

关于C++ vim IDE。你需要的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/623605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com