问题 VIM作为IDE - 建议


我正在寻找有关使用VIM作为IDE的建议。我通常用许多编程语言编写代码,包括C,C ++,汇编程序,MATLAB,Maple,BASH脚本等等。

总的来说,为了保持一致性,我喜欢在我的大部分项目中使用单个IDE,并且我发现我在VIM中执行了大约90%的编码,并偶尔使用Eclipse来代替C /中的某些项目C ++(即:人们已将项目组合为Eclipse项目,或者来自www.microchip.com的PIC24 / 32项目)。

我已经非常熟悉VIM的基本功能(windows vs buffer,文本操作,脚本),并希望将它用作我的主IDE。我已经从这里采取了一些提示: http://vim.wikia.com/wiki/Use_Vim_like_an_IDE#Writing_Code

我已经在项目等中使用nerdTree插件进行目录浏览,但我需要对代码完成和符号解析做一些事情,因为这是我最关心的两个问题。

  1. 符号解析
    • 我在使用C-tag方面经验有限,如果我正在使用频繁更改的非常大的代码库,我想要了解我应该使用什么。我工作的项目通常是从至少十几个其他项目中提取头文件,我希望能够跳转到快速定义函数,常量或宏的文件(即:像CTRL-G一样) Eclipse中的功能,“跳转到定义”),以及快速获取函数/宏/常量/等所有调用/引用的列表(即:像Eclipse中的CTRL-SHIFT-G功能一样,“显示所有引用在项目或当前工作目录“)。
  2. 标签完成
    • 例如,我在Visual Studio和Eclipse中非常喜欢的功能之一就是当我输入变量名称(即:指向struct的指针)时,它会解析所有结构成员的名称和类型,并为我提供一个选项卡完成列表选择合适的成员。当我错误地使用“。”时,他们也会指出。 vs“ - >”用于成员访问。我在VIM中尝试过superTab,但我无法让它工作。我还希望制表符完成功能使用与符号解析插件生成的相同的C-tag
  3. 处理构建输出
    • 我的最后一个问题是有一个自动生成的构建警告列表和构建错误。例如,当我在命令行提示符下运行“make all”时,必须仔细阅读代码清单以手动查找所有构建警告。

我意识到这有很多要问,而且我总是可以回到Visual Studio或Eclipse,但我真的只想要一个简单的跨平台控制台功能的模态编辑器来满足我的所有开发需求,而且没有一个主要的IDE在那里填补了这个需求。

谢谢大家。


1317
2018-03-31 20:02


起源

可能重复 如何让VIM成为一个完整的IDE - Greg Hewgill


答案:


一世 认为 (但尚未检查)Eclim满足#1和#2,而我确信Syntastic满足#3。更多感兴趣的事情:

您是否在插入模式下通过Ctrl-p和Ctrl-n(上一页和下一页)了解omnicompletion?这不是代码完成,但经常完成工作。


7
2018-03-31 20:24



+1:我使用eclim,这是 真 改变生活对我而言。它绝对满足#1和#2。它也支持重构。 (我现在只使用eclim for Java,对于C / C ++我使用ctags + Indexer goo.gl/gkFPp ,但eclim也可以与其他语言一起使用。我只是没有测试它。) - Dmitry Frank


对于自动完成部分(第2点),我熟练使用clang_complete。

要快速设置和参考,请尝试以下页面: http://zwiener.org/vimautocomplete.html

编辑:这仅适用于C,C ++和Objective-C。


3
2018-03-31 20:06





我在vim中使用以下配置:

压缩文件

它具有基于标签列表,ctags,书呆子评论者和一些插件的自动完成功能。

希望能帮助到你.. :)


2
2018-04-01 20:05



你的链接已经死了。 - Bobby
对不起,这对我有用。我也在不同的浏览器上试过它。无论如何,试试这个: j.mp链接 要么 这个 - prongs
您的上一个链接有效,谢谢。另外,请停止使用URL-Shorteners 我们很难过  摆脱他们。 - Bobby
@Bobby:我不知道缩短的网址是不是很糟糕。现在我受过教育了。我无法在之前的评论中更改j.mp链接,但它与...相同 另一个链接 - prongs


我已经使用Vim作为IDE大约一年了。我的所有定制都是 在github在线

也就是说,我认为Vim初学者不应该像这样开始使用vim;相反,我认为Vim初学者应该逐步学习vim。我认为唯一的变化是我从一开始就要做的那些变化是:

  1. 将ESC重新映射到jk
  2. 开关:和;
  3. 设置领导者密钥,

0
2017-12-20 12:51



很公平,但我确实注意到我已经在90%的项目中使用它,所以我不符合排名初学者的资格。 - DevNull
@Dogbert抱歉,我没有仔细阅读这个问题! - jdg
没有汗水。干杯! - DevNull