【问题标题】:How to change a variable name automatically across the project in VIM?如何在 VIM 中跨项目自动更改变量名?
【发布时间】:2013-12-19 06:18:46
【问题描述】:

在eclipse中,如果你改变了一个变量名,eclipse会在整个项目中自动改变这个变量的名字。

vim 也可以吗?

【问题讨论】:

    标签: vim


    【解决方案1】:

    Vim 是一个文本编辑器,而不是一个IDE。虽然它有一些文件类型语法的概念,但它不能完全解析也不理解语言的完整语法。重构,即使是像重命名标识符这样简单的重构,都需要完全理解(100% 正确)。

    attempts at refactoring support in Vim,大多数特定于语言,some 也是通用的。但我建议继续为此使用真正的 IDE(因为它的舒适性、安全性和正确性),而是将 Vim 仅用于简单的、基于文本的替换,使用:bufdo substitute/... 或宏,如here 所述。

    【讨论】:

    • lhRefactor 目前不处理变量重命名。如果有一天我有时间研究像这样的项目 (github.com/lukhnos/refactorial),我可能会尝试为 vim 提供一个封装。只有 C、C++ 和 Obj-C 会成为目标。目前没有任何计划。
    【解决方案2】:

    有点。

    因为它不是 IDE,因此不了解您的代码任何内容,Vim 只能看到您看到变量名称的文本。它无法从范围或其他任何东西中推断出任何东西。在不使用某些外部程序的情况下,在 Vim 中重命名变量通常通过缓冲区范围或项目范围的搜索/替换来完成。

    由于您没有告诉我们您正在使用哪种语言,我们无法告诉您是否有针对您需求的特定语言解决方案。

    【讨论】:

      【解决方案3】:

      试试这个插件 -> Clighter,用于 c-family 重命名重构。它基于clang,但有局限性。仍在开发中

      【讨论】:

        猜你喜欢
        • 2010-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多