Vim 中是否有任何插件或内置方法可以对 C 或 C++ 代码进行重构,类似于 Eclipse 中的重构工具?
我特别热衷于 Eclipse 中的提取方法重构工具,它将确定新方法的参数,并且通常还会猜测用作返回值的变量。
不,虽然 Vim 是一个很好的编辑环境,并且可以通过很多方式进行定制(代码折叠、语法着色、宏扩展等),但其中大多数都是在语法级别而不是语义级别上完成的。即使代码折叠也只是匹配相反的大括号。
要进行正确的重构,您必须拥有大量有关 AST 的语义知识、在哪个作用域中声明哪些变量等等。像 Eclipse 这样的 IDE 会建立每个词法作用域中定义的变量的缓存,以便它们可以快速参考它们的使用位置,以确定要重命名的内容和位置。
这并不是说你不能从语法上做某些事情;而是说你不能做一些事情。毕竟,人们可以很容易地取出一段代码并将其放入一个单独的函数中。您甚至可以猜测一些参数(例如,找到变量列表,找出哪些变量具有本地声明,删除它们,剩下的就是您的参数。但是 Eclipse 还可以做其他事情,例如确定是否有任何变量是在函数中修改,并确保它们通过返回值传回。它还检查是否有任何抛出的异常,并将它们添加到列表中。
最终的结果是,虽然您可能能够在 Vim 中近似实现其中的一些功能,但您实际上无法在仅使用 Vim 的环境中使其工作。您可以在 Eclipse 中使用类似 Vim 的键绑定,或者查看eclim http://eclim.org/。从主页:
eclim 的主要目标是
Vim 的 Eclipse 功能
编辑。最初的目标是
提供Eclipse的java功能
在 vim 中,但支持各种其他
语言(c/c++、php、python、ruby、
css、html、xml 等)已添加
还有更多的计划正在计划中。
Eclim 并不是一个应用程序,
更多的是两个伟大的融合
项目。第一个,Vim,可以说是
最好的文本编辑器之一
存在。第二个,日食,
提供了许多很棒的工具
各种语言的开发。每个
提供了许多功能,可以
提高开发人员的生产力,但是
两者都还有待解决
想要的。 Vim 缺乏原生 Java 支持
以及许多高级功能
在 Eclipse 中可用。日食,在
另一方面,仍然需要使用
鼠标可以做很多事情,当
与 Vim 相比,提供了小于
编辑文本的理想界面。
这就是 eclim 发挥作用的地方。
而不是尝试编写 IDE
Vim 或 Eclipse、eclim 中的 Vim 编辑器
提供了一个 Eclipse 插件
通过以下方式公开 Eclipse 功能
服务器接口,以及一套Vim
与 Eclipse 通信的插件
通过该接口。
这不仅提供了类似 Eclipse 的环境,is蚀。但您仍然可以获得 vim 的导航和文本编辑功能。听起来这可能适合您的需求,尽管有关的文档重构支持 http://eclim.org/vim/java/refactor.html并不表示它提供了提取方法功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)