【问题标题】:Inspecting source code with vim, ctags and other tools使用 vim、ctags 等工具检查源代码
【发布时间】:2014-03-20 04:37:34
【问题描述】:

有很多关于如何使用 vim/ctags 浏览源代码的信息,例如跳转到标签、导航标签堆栈、搜索标签匹配等。

但是,我找不到有关如何实际检查源代码及其结构的信息,类似于某些 IDE 中的“源浏览器”工具。

以下是我希望能够使用 vim 对 Python 源代码执行的操作,尽管对于某些其他语言可能同样如此:

  1. 列出当前文件(模块)的所有成员,即模块中定义的顶级类、函数和/或变量。
  2. 列出给定类的所有方法和属性。
  3. 跳转到给定类中的成员,例如:tag ClassName.my_method
  4. 列出包成员/层次结构。

【问题讨论】:

    标签: python vim ctags


    【解决方案1】:

    您想要的一些东西(至少是“列表”部分)可以使用 TagListTagBar 完成,但恐怕您将 Vim 与 IDE 混淆了。

    【讨论】:

    • 您为什么认为我将 vim 与 IDE 混淆了?我可以看到标签文件提供了足够的信息,使检查和导航不熟悉代码的一些常见任务更容易。
    • 标签很有帮助,是的。但与您在 IDE 中获得的信息的准确性相比,它并没有有用。 Vim 不能处理作用域,例如,如果标签不是 exactly Class.method,它就不能跳转到Class.method,等等……我认为您将 Vim 与一个 IDE,因为您似乎希望它具有类似 IDE 的功能。
    • 除了一个包含足够多插件的编辑器之外,什么是 IDE?
    【解决方案2】:

    你看过绳子吗?

    http://rope.sourceforge.net/ropevim.html

    特点

    绳索重构:

    • 重命名任何东西!
    • 提取方法/局部变量
    • 移动类/函数/模块/包/方法
    • 内联方法/局部变量/参数
    • 重组(例如将“${a}.f(${b})”转换为“${b}.g(${a})”,其中“a: type=mymod.A”)
    • 工厂介绍
    • 更改方法签名
    • 将模块转换为包
    • 封装字段
    • 用方法对象替换方法
    • 还有其他一些...

    绳罐:

    • 在提取重构中提取相似语句
    • 在需要时修复导入
    • 预览重构
    • 撤消/重做重构
    • 中断重构
    • 执行跨项目重构
    • 处理重命名和更改签名中的基本隐式接口
    • 在重构中支持 Mercurial、GIT、Darcs 和 SVN

    绳子还可以帮助 IDE:

    • 自动完成
    • 查找定义位置
    • 获取 pydoc
    • 发现事件
    • 组织导入(删除未使用和重复的导入并对其进行排序)
    • 生成 python 元素

    http://rope.sourceforge.net/index.html

    【讨论】:

    • 绳子很棒.. 但它是否支持像gutentags/tagbar 这样的树状结构查看功能/模块等?
    猜你喜欢
    • 2018-06-05
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    • 2010-12-10
    相关资源
    最近更新 更多