您是否使用VIM / Emacs / Terminals开发C / C ++?这个实用的项目是什么类型的?

时间:2009-11-15 04:51:03

标签: c++ vim emacs ide terminal

对于那些使用vim / emacs /终端等的人(即,不适合IDE),你在做什么样的项目?他们大吗?生产?这些是您在工作中使用的工具吗?或者主要是为了较小的东西......或者将大事分解成小东西?对不起......问题不多。

我问,因为我现在正在学习计算机科学,我对它非常兴奋。我最近为政府机构提供了实习编程J2ME,一直是Netbeans和eclipse。所以我在这个行业中只有一些“小联盟”年。

简而言之,对于CL类型工具而言,与“bean和VS”之类的IDE相比,它是实用的。我有很多需要学习的东西,而且CL工具可能会教我,而不是像IDE那样屏蔽我。

16 个答案:

答案 0 :(得分:11)

  

你在做什么样的项目?

所有类型...... vim是我在任何地方的主要“IDE”

  

他们大吗?

是的...我的FOSS项目CppCMS几乎100%写在vim

  

生产?

是的,我今天写的大部分生产代码(非FOSS)都是使用vim。

  

这些是你在工作中使用的工具吗?

我会解释severak简单的事情:

  1. vim提供了IDE所做的几乎所有工具,突出显示,拼写检查,自动执行,使用多个缓冲区,构建,上下文“跳转”(decl,def)等等
  2. 它非常便携,我在Windows,Linux,OpenVMS,Solaris,FreeBSD上使用它。
  3. 与膨胀的IDE相比,它非常轻。
  4. 我今天只使用IDE做一件事:调试硬错误。

答案 1 :(得分:7)

Emacs / Vim可用于任何大小的项目。

一般情况下,您不会选择环境,您找到的工作将为您挑选一个(除非它是Unix中的非Java编程,在这种情况下使用您想要的)。

我不会为这个选择而烦恼,只是学习使用哪种编辑器/ IDE最大限度地使用。

我使用(并已使用)Emacs用于个人项目,并且在两个不同的公司中使用超过1000万行生产代码的软件项目。

答案 2 :(得分:6)

我使用emacs。我会推荐emacs。我之前使用过emacs是emacs:TECO,TV和Decsystem-20上的e宏包。 如果我需要的话,我可以使用vim,但是你学到的东西很大程度上就是你手边的东西。 是的,学习一个或两个。而且我会说,如果IDE适合,也要佩戴它。

答案 3 :(得分:5)

我使用vim来做所有事情,我讨厌IDE,他们对我来说太臃肿了。

我没有将它用于任何大型项目(因为我没有写过任何大型项目),但如果我要去,我仍然会使用vim。

在学习新语言时,我认为最好不要使用IDE,并学习“正确”的方法(比如c ++,学习命令行开关和使用makefile)。

答案 4 :(得分:5)

二十年前,我所有的编程都是用纯文本编辑器完成的,主要是emacs,但多年来技术有所改进。

我仍然使用纯文本编辑器偶尔编写代码,但只有在我正在编写代码的机器上安装IDE时才会这样做。例如,有几次我在没有笔记本电脑的情况下停在客户端网站上,想写一个快速程序。

这也是某些嵌入式系统的问题,您可能希望通过基于RS232或USB的命令行界面以交互方式更新代码。

大多数现代IDE为代码编辑过程提供足够的加速,每当我希望使用计算机进行开发超过两三个小时时,我将安装一个。

答案 5 :(得分:4)

我将vim用于从小型一次性脚本到1000多行生产代码的所有内容。它是如此多才多艺,以至于在任何其他环境中工作似乎都有限制。如果我是一个需要标准环境(IDE)的项目的一部分,那么我将在vim中尽可能多地编码,然后导入到ide中。

答案 6 :(得分:4)

我相信每个人都应该能够在命令行环境中有效运作。你不能总是确定除了基本工具之外的任何东西都可以在目标机器上使用,你不能确定你有足够的系统来提供一个完整的IDE,你可能真的找到你的系统'重建对于IDE来说太复杂了。

我构建的系统包含多个互操作客户端和分布在多台物理机上的服务器。在这些努力中,我几乎只在服务器端使用命令行工具。我会尽可能使用DDD,但我也知道底层的gdb。如果客户端是Windows,我将使用Visual Studio IDE,但如果它们是UNIX,我将使用命令行。

了解如何使用最少的工具有效地工作。你会成为一个更好的开发人员,如果他们做得更好,你会更多地欣赏集成工具。

顺便说一句,我把Emacs放在IDE类中。我有一个朋友进来并先把它解雇,并且不会整天离开环境。事实上,它不仅仅是一个IDE,因为他在邮件,冲浪等方面做了事,或者他告诉我。

答案 7 :(得分:4)

1。是。 2.任何类型的项目。


可以在Vim / Emacs / Unix中开发的系统大小没有限制,事实上,限制比IDE更少。让我们来看看我使用的一些东西......

SYSTEM          LINES OF CODE
Linux kernel       10,000,000
NetBSD              4,000,000
Ruby                  200,000

那些是相当大的系统。

我不相信它们中的任何一个都是用IDE软件开发的。

答案 8 :(得分:4)

对于包含100多个文件的大型项目,使用IDE非常重要。但是,在处理大型项目时,您需要不断进行大量的小事。为所有这些启动IDE可能不值得。对Vim或Emacs这样强大的编辑器有一个好的命令,我认为这是任何程序员的基本技能。但是,根据项目需要,还应使用适当的IDE来加速定期开发工作。

答案 9 :(得分:4)

嗯......好吧,这样看:

我在emacs中打开代码。我编辑它。我使用代码完成(我甚至使用intellisense emacs)...当我准备好编译时,我按下CTRL + F7 ...我绑定的一个键...它构建在一个小的弹出窗口中...如果有任何错误,我可以通过点击f8(另一个绑定键)跳转到代码中......一旦它全部构建,我点击f5 ...(这会运行我编写的一个程序来解析Makefile并确定可执行文件的路径... ...这会在一个小弹出窗口中启动调试器...我可以单击代码行来设置断点......等等...我调试...我可以“下一步”通过F10的代码......我可以用F11(更多的键绑定)“逐步”完成代码......当它全部完成后,我按Shift-F7打包(.rpm)项目。

那么,我有IDE吗?或者我只使用纯文本编辑器?

答案 10 :(得分:3)

我倾向于同意,为了学习,理解基础是一个好主意:你编辑代码,用编译器编译代码,用链接器链接它,用调试器调试它。

这使得理解概念变得更容易。并且它更容易从平台移动到平台。

所以,学习vi,make,gdb,一些版本控制系统(git,svn)。

但是对于生产我会说必须熟悉环境的“标准IDE”(Visual Studio for Windows,XCode for Mac OS,Eclipse for Java等)。

无论其他人说什么,掌握IDE将提高您的工作效率。 如果您使用vi / emacs 10年并尝试Eclipse或Visual Studio几天,您会说它们很臃肿并且不提供任何交换。那是BS。你越开放,你就会越好。

答案 11 :(得分:3)

我使用Emacs开发大小数百万卢比的商业软件,大量使用模板等。我使用CEDET + gnu global作为辅助包+ yasnippet等。

答案 12 :(得分:1)

好吧......我不得不说我是个傻瓜。使用IDE,我不关心像你使用像vim / emacs这样的编辑器这么多的东西。但是当你做更多的事情时,你会发现你使用的IDE比帮助你的程序开发过程更加阻碍。唉...如果你坚持使用vim / emacs作为你的编辑,你会遇到“深刻的学习曲线”,你将浪费这么多时间甚至在你的编辑器中取得如此微不足道的功能,当你是你时,你将会绝望如果你只是捡起它们,就忙着赶上你的时间表......你必须安定下来,开始学习并且还要和编辑一起玩几天,你会发现你已经取得了比以往更多的成就期待!

答案 13 :(得分:0)

我的标准IDE是一系列xterms,运行一些vim编辑器,手册页文档,调试器,日志尾部和命令行来执行操作,还有一个Firefox实例用于提取其他文档或(如适用)测试基于网络的代码。这就是我现在用于所有项目的方式,无论大小,无论是个人还是专业。

我唯一一次看到使用IDE的真正好处就是我一直在使用平台原生的GUI应用程序,在这些应用程序中,它们使构建表单和连接控件变得更加容易。但是我十多年来没有做过那种工作 - 我做的最后一件事是在Deplhi,当Borland仍然拥有它时;我认为第4版刚刚问世,虽然它可能已经发布了3个版本。

答案 14 :(得分:0)

Emacs是一个很好的工具(Vim也是如此)用于编程,我用它来开发我的物理研究代码。作为额外的好处(对我而言)Emacs通过Tramp很好地处理远程文件,所以这对我来说是一个巨大的繁荣,因为我经常不得不访问远程服务器。

话虽如此,每当我需要使用GUI编写应用程序并在大型框架内(如c#with .NET或android框架)时,我总觉得很难用emacs进行开发。 IDE(Visual Studio,Eclipse)只包含自动完成和查找以及框架中适当内容和调试的所有内容,即使代码编写部分始终不能令人满意(我总是最终为IDE安装某种emacs插件,它总是没有适当的Emacs!)。

有时在Emacs中为这些类型的项目设置一个环境需要很长时间,因为这不是设计师设想的默认方式,并且拥有一个开箱即用的环境比打击我的头脑容易得多在不使用指定的IDE的情况下找到关于如何编译/调试这些应用程序的通常模糊的信息。

答案 15 :(得分:0)

我们可以总结一下,像emacs / vi这样的编辑器通过使用CL工具(或CL工具背后的库)来实现IDE的一些功能。

将编辑器用作IDE的主要问题是:

  • 将其配置为在IDE中具有您满意的功能并不一定是直线前进(我要求任何曾尝试配置CEDET的人表示同情;)),而不是在工作之外-the-box with IDE

  • 这些功能在编辑器中的工作方式与CL非常相关,因此您至少需要对CL的模糊理解。

优点是CL工具有时比IDE更普遍。掌握CL打开了为您的构建编写脚本的大门(“在一个命令中进行构建”而不是“一键构建”),这为自动化高度构建,持续集成等打开了大门......所有如果您对构建的理解在F6或其他任何时候停止,则难以设置。