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

如何使用emacs重构C++源代码?

如何解决《如何使用emacs重构C++源代码?》经验,为你挑选了6个好方法。

我主要对C++和方法/类名/签名自动更改感兴趣.



1> 小智..:

在最近的Emacs版本(24)中,Semantic能够做到这一点.

    可能激活语义模式M-x semantic-mode RET.

    C-c , g.启动Symref缓冲区.

    C-c C-e打开所有参考.

    重命名R.


我相信它是`Cc,g`而不是你所拥有的.

2> Alex Ott..:

如果你可以在elisp中编程,你可以看看来自CEDET库的cedet + srecode的组合- 它为这个任务提供所有工具 - 找到函数的调用者,获得签名等等.但你需要自己创建refactory工具,使用这些工具


只看一下CEDET页面,这似乎是一个比选择的更好的答案......
(编辑添加CEDET页面链接).我不确定我是否同意贾里德,但我必须尝试一下."你需要自己创建重构工具"有点看起来有点奇怪......

3> T.E.D...:

我做了很多,所以我也在等待其他回复.

我所知道的唯一技巧是非常基本的.在重构代码时,以下是我在Emacs中最好的朋友:

M-x query-replace

这允许您进行全局搜索和替换.当您将方法和常用数据移动到其他类或名称空间时,您将会做到这一点.

C-x 3

这为您提供了一个并排显示两个缓冲区的显示器.然后,您可以继续在其中加载不同的文件,并将光标从一个移动到另一个C-x o.这是非常基本的东西,但我提到它是因为它使下一个有多强大......

C-x (
(type any amount of stuff and/or emacs commands here)
C-x )

这是您在emacs中定义宏的方法.任何时候你发现自己需要反复对一堆代码做同样的事情(而且它对于查询替换来说太复杂了),这是一个救星.如果你陷入困境,你可以点击C-g停止宏定义,然后撤消(C-_)直到你回到你开始的地方.调用宏的关键是C-x e.如果你想多次这样做,你可以先点击Esc并输入一个数字.例如:Esc 100 C-x e将尝试调用您的宏100次.

(注意:在Windows上,您可以通过按Esc键或按住Alt键获得"Meta".


但这不是重构.这是手动完成并编辑整个程序.
@ vy32 - "重构"是一个人为源代码所做的事情.工具当然有帮助,但无论工具有多大帮助,都是重构的人,而不是工具.
还有很多其他好工具.看到提到CEDET的答案.此外,我经常使用TAGS和Mx标签查询替换将所有匹配重命名为标签搜索,这可以跨越源文件.另请参阅Mx grep-find,它可以轻松找到要替换的符号的所有出现.
重构与手动编辑程序不同.重构告诉编辑"无论你在哪里看到变量FOO将其改为BAR." 这将改变变量FOO而不是方法调用FOO.

4> jamesnvc..:

对于重构工具和简单正则表达式之间的某处,从Emacs 22开始,您可以在替换文本中嵌入任意elisp表达式,这样您就可以进行非常强大的文本操作.Steve Yegge 不久前写了一篇很好的文章.


是的,但这不是重构.

5> TheJJ..:

有一个新工具使用emacs语义模式框架:

很棒的演示:https://github.com/tuhdo/semantic-refactor/blob/master/srefactor-demos/demos.org

用得到它M-x package-install从MELPA或 https://github.com/tuhdo/semantic-refactor/.



6> Greg Rogers..:

我的一个朋友正在玩xrefactory并说它工作得很好.虽然它并不便宜.


这不是免费的,也不是免费的.:(
推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有