【问题标题】:Grep-ing classes / functions from projectsGrep-ing 项目中的类/函数
【发布时间】:2012-06-20 09:31:34
【问题描述】:

有没有办法在 grep(或 vim)中打印出命名的函数/类?

即来自:

    class InternalTimer(Sim.Process):
        def __init__(self, fsm):
            Sim.Process.__init__(self, name="Timer")
            random.seed()
            self.fsm = fsm

        def Lifecycle(self, Request):
            while True:
                yield Sim.waitevent, self, Request
                yield Sim.hold, self, Request.signalparam[0]
                if(self.interrupted()):
                    self.interruptReset()
                else:
                self.fsm.process(Request.signalparam[1])

调用$my-func-grep '__init__(self,fsm)' filename.py 会产生

        def __init__(self, fsm):
            Sim.Process.__init__(self, name="Timer")
            random.seed()
            self.fsm = fsm

【问题讨论】:

  • 调用 $fgrep '__init__(self,fsm)' filename.py 应该只产生 def __init__(self, fsm):。你想要函数定义吗?
  • 如果你有tags文件,你可以:pt __init__查看函数的签名。
  • @tuxuday 不,我想打印出函数,在这种情况下,我使用 fgrep 作为一个开玩笑的虚构函数-grepper。没想到 fgrep 已经重载到经典 grep 上。更新示例更清晰

标签: python search vim tags grep


【解决方案1】:

您可以创建一个 vim 扩展来有效地执行以下操作:

import inspect
print inspect.getsource(name_of_function)

这会打印函数签名和函数体。如果 Vim 编译时支持 Python,您可以在 Python 本身中编写扩展。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多