代码之家  ›  专栏  ›  技术社区  ›  Eli Bendersky

使用cscope用VIM浏览Python代码?

  •  16
  • Eli Bendersky  · 技术社区  · 14 年前

    有人成功地使用 cscope cscope公司 pycscope 但其输出不受现代版本的支持 cscope公司

    有什么想法吗?或者用VIM浏览Python代码的替代方法?(我对额外的功能特别感兴趣 cscope公司 ctags )

    5 回复  |  直到 14 年前
        1
  •  18
  •   Community Egal    4 年前

    编辑:我将一步一步地完成这个过程:

    准备来源:

       Alternatively,  ctags  can generate a cross reference file which lists,
       in human readable form, information about the  various  source  objects
       found in a set of language files.
    

    这是问题的关键:

     ctags -x $(ls **/*.py);                  # replace with find if no zsh
    

    将以已知格式提供源对象的数据库,如中所述

     man ctags;                               # make sure you use exuberant ctags!
    

    Gnu Global不仅限于“开箱即用”类型的文件。任何常规文件格式都可以。

    如果_cscope.txt文件.

    不管怎样,这都是可行的。

    也许你更喜欢伊杜提尔?

    z3c公司。配方.标签

    在pypi上使用ctag和idutils为构建创建标记文件,这是我将在短时间内研究的方法。

    当然,您可以一直使用下面的greputils脚本,它支持idutils,我们知道idutils可以与python一起工作,如果失败,今年还有一个叫做vimentry的东西也使用python、idutils和vim。

    参考链接(不完整列表):

    希望这能帮你解决问题,我当然帮了我。今晚要是有个蛆虫做的侏儒我会很难过的。

        2
  •  14
  •   Martijn Pieters    12 年前

    这似乎对我有用:

    cscope.files :

    find . -name '*.py' > cscope.files
    
    cscope -R
    

    cscope -b 首先,如果交叉引用没有正确构建。

        3
  •  11
  •   Eli Bendersky    14 年前
    1. 从一封与 cscope
    2. 看来我用的是过时的 pycscope cscope公司 分贝。作者 肾盂 告诉我他找到了 cscope公司 DB源代码读取 cscope公司 pycsope 0.3,这是我将使用的解决方案。

    我将接受这个答案,因为不幸的是,即使在宣布悬赏之后,也没有其他答案提供帮助。没有答案被否决,所以我真的不知道赏金会去哪里。

        4
  •  2
  •   ZyX nvogel    12 年前

    有一个美妙的 Python-mode-klen <C-c>g <C-c>rag (第一个是文件类型映射,第二个是全局映射)。还有更多有用的特性,有些对我没用。所有这些都是不可撤销的。在上找到的问题列表中的功能 cscope-intro

    1. 这个符号用在哪里? <C-C>f型 - 而不是实际的线(尽管它们指向正确的位置)。也许会修好的。
    2. 它的定义是什么? , 这个全球符号的定义是什么? , <
    3. <…>全局符号的定义是什么? <C-C>拉吉

    不太多,但我不是太有经验的ropevim用户。

        5
  •  0
  •   shengy    12 年前

    创建python脚本: cscope_scan.py

    import os
    
    codeRootDir = os.getcwd()
    
    __revision__ = '0.1'
    __author__ = 'lxd'
    
    FILE_TYPE_LIST= ['py']
    
    if __name__ == '__main__':
        import os
        f = open('cscope.files','w')
        for root,dirs,files in os.walk(codeRootDir):
            for file in files:
                for file_type in FILE_TYPE_LIST:
                    if file.split('.')[-1] == file_type:
                        f.write('%s\n' %os.path.join(root,file))
        f.close()
        cmd = 'cscope -bk'
        os.system(cmd)
    

    cscope.files 然后执行 cscope -b cscope -bk 可接受:)

        6
  •  0
  •   Ciro Santilli OurBigBook.com    4 年前

    cscope -Rb -s *
    

    cscope apparently not designed to work with Python

    超集任何语言任何工具问题: How to find all occurrences of a variable in Vim?