由于您现在要使用功能齐全的C / C ++ IDE,因此我可能有资格。
我使用了从vc4到Visual Studio 2010的所有MS IDE,因此我完全了解您想要什么。
好消息是,Emacs可以达到Visual Studio的95%,并且可以做得更多。但您可能对“更多”部分不感兴趣。因此,我将只关注您的问题。
现在,关键是,您必须使用CMake,即使您的C ++应用程序也仅适用于Windows!故事结局。没有其他选择,我知道我在说什么。如果您不使用CMake,那么继续下去毫无意义。
对问题1的回答:您不需要设置任何内容,请安装可设置其他插件的cpputils-cmake(https://github.com/redguardtoo/cpputils-cmake)。它比Visual Studio更加方便。因此,无需按项目进行设置。对于搜索替换,我结合了bash / perl / git和percol(https://github.com/mooz/percol)的功能,这比任何IDE都要好得多。检查我的博客(http://blog.binchen.org/categories/emacs.html)和我的〜/ .bashrc(https://gist.github.com/redguardtoo/01868d7a13817c9845e8#file-bashrc)。例如,我可以搜索替换某些提交中的文件。
问题2的答案:cpputils-cmake已经设置好了,您只需要M-x compile
照常设置即可。
对问题3的回答:与问题2相同。我不知道为什么这是一个问题。它的行为与VS完全相同,但键绑定更好。
问题4的答案:现在,大多数人只使用Gnu Global,它可以与cpputils-cmake结合使用。我知道真正的问题是自动检测包含所有包含的C ++标头的目录。可以使用cpputils-cmake来完成,其他一切都很容易。请man global
在shell中阅读有关环境变量GTAGSLIBPATH的手册。有很多插件可提供基于Global的不错的UX进行代码导航,我建议ggtags.el
问题5的答案:可视化调试,很多人推荐M-x gdb-many-window
,我尝试了一下,但是没有用。这仅仅是因为我的gdb版本已过时(提示,我使用的是OSX 10.7.3),并且我懒于升级我的OS。但是GUD很好。我在编辑器窗口中创建了一些短键来为我打印变量。所有调试的东西都是可用的。它没有表UX布局作为VS。但说实话 微软的调试器UX也不是世界上最好的。最好的用户友好调试器是DDD(http://www.gnu.org/software/ddd/)。Gud和VS都深陷这个问题。这些天来,我只是用另一个Emacs插件yasnippet插入了日志代码。需要澄清的是,我知道有关断点的所有高级技巧,这仅仅是因为我懒于应用这些技巧。在Emacs中插入日志记录代码要容易得多。
关于IDE还有很多其他事情:代码完成?使用公司模式,无需设置。实时语法检查?使用cpputils-cmake,然后(flymake-mode 1)
最好的事情是,你需要做的比VS设置少,如果你用我的设置在(https://github.com/redguardtoo/emacs.d)也设置有标题“赛尔的emacs的配置再加上C / C ++的支持”。
现在,我需要强调一点,Emacs给您充分的自由。您可以选择任何开始方式。困难的方法或简单的方法。
简单的方法是复制我的设置(或github上任何人的设置,首先算星星),在5分钟内您将拥有一个功能齐全的C ++ IDE。VS在那5分钟内还没有完成启动。
困难的方法是从头开始调整设置。如果您选择困难的方式,请不要抱怨Emacs。这是你的选择。
顺便说一句,从长远来看,对Emacs Lisp的一点了解可能会有所帮助。与我在MS sh * t上浪费的时间相比,我认为对于专业的C ++开发人员而言,这是微不足道的。许多年前,MS在某些Windows更新中静默升级了VC运行时。它使我的产品在公司的机器上运行正常,但在客户的计算机上崩溃了。
那件事之后,我开始了解理查德·斯托曼。