Python 使用vim、ctags和其他工具检查源代码

Python 使用vim、ctags和其他工具检查源代码,python,vim,ctags,Python,Vim,Ctags,关于如何使用vim/ctags浏览源代码,有很多信息,比如跳转到标记、导航标记堆栈、搜索标记匹配等 然而,我找不到关于如何实际检查源代码及其结构的信息,类似于某些IDE中的“源代码浏览器”工具 下面是我希望能够使用vim处理Python源代码的内容,尽管对于其他一些语言也可能同样如此: 列出当前文件(模块)的所有成员,即模块中定义的顶级类、函数和/或变量 列出给定类的所有方法和属性 跳转到给定类中的成员,例如:tag ClassName.my_method 列出包成员/层次结构 您想要的部分(至

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

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

下面是我希望能够使用vim处理Python源代码的内容,尽管对于其他一些语言也可能同样如此:

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

  • 您想要的部分(至少是“列表”部分)可以使用或完成,但我担心您将Vim与IDE混淆了。

    您看过Rope吗

    特征 Rope重构:
    • 重命名任何东西
    • 提取方法/局部变量
    • 移动类/函数/模块/包/方法
    • 内联方法/局部变量/参数
    • 重组(如将“${a}.f(${b})”转换为“${b}.g(${a})”,其中“a:type=mymod.a”)
    • 介绍工厂
    • 更改方法签名
    • 将模块转换为包
    • 封装字段
    • 用方法对象替换方法
    • 还有一些其他的
    绳罐:
    • 在提取重构中提取类似语句
    • 在需要时修复导入
    • 预览重构
    • 撤消/重做重构
    • 中断重构
    • 执行跨项目重构
    • 在重命名和更改签名中处理基本隐式接口
    • 在重构中支持Mercurial、GIT、DARC和SVN
    Rope还可以帮助IDE实现以下功能:
    • 自动完成
    • 查找定义位置
    • 获取pydoc
    • 查找事件
    • 组织导入(删除未使用和重复的导入并对其进行排序)
    • 生成python元素

    为什么你认为我把vim和IDE混淆了?我可以看到,标签文件提供了足够的信息,使一些检查和导航不熟悉代码的常见任务变得更容易。但与IDE中信息的准确性相比,这并没有多大帮助。Vim不能处理作用域,例如,如果标签不完全是
    Class.method
    ,它就不能让你跳转到
    Class.method
    ,等等……我认为你把Vim和IDE混淆了,因为你似乎期望它具有类似IDE的功能。什么是IDE,但一个有足够插件的编辑器呢?Rope太棒了。。但它是否支持以树状结构查看函数/模块等,如
    gutentags/tagbar
    does?