发布时间:2019-09-22 08:09:12编辑:auto阅读(2357)
用vim作python开发,在看源码的时候,发现无法跳转,发现ctags是专门为c语言准备的。
很多人不会注意到python的发行包下Tool/scripts的文件夹。里面的ptags.py可以用来生成vim需要的tags(eptags.py for emacs)
脚本的目录是python源码下的Tool/script/ptags.py。 如果不想去找,可以直接copy一份,http://svn.python.org/projects/python/trunk/Tools/scripts/ptags.py,放在你方便的位置,然后使用ptags.py生成tag。
为当前目录生成tag文件 : ptags.py *.py
为整个项目生成tag文件:find . -name \*.py -print | xargs ptags.py
然后就有tag了。在vim的配置文件中导入tag文件的目录就可以了。
比如在.vimrc 中添加:
set tags+=tags
set autochdir
1
|
/home/bigzhu/ . local /share/Trash/files/Python-2 .5.2 /Tools/scripts/ptags .py
*.py |
源码:
转自http://www.oschina.net/code/explore/Python-3.1.3/Tools/scripts/ptags.py
#! /usr/bin/env python # ptags # # Create a tags file for Python programs, usable with vi. # Tagged are: # - functions (even inside other defs or classes) # - classes # - filenames # Warns about files it cannot open. # No warnings about duplicate tags. import sys, re, os tags = [] # Modified global variable! def main(): args = sys.argv[1:] for filename in args: treat_file(filename) if tags: fp = open('tags', 'w') tags.sort() for s in tags: fp.write(s) expr = '^[ \t]*(def|class)[ \t]+([a-zA-Z0-9_]+)[ \t]*[:\(]' matcher = re.compile(expr) def treat_file(filename): try: fp = open(filename, 'r') except: sys.stderr.write('Cannot open %s\n' % filename) return base = os.path.basename(filename) if base[-3:] == '.py': base = base[:-3] s = base + '\t' + filename + '\t' + '1\n' tags.append(s) while 1: line = fp.readline() if not line: break m = matcher.match(line) if m: content = m.group(0) name = m.group(2) s = name + '\t' + filename + '\t/^' + content + '/\n' tags.append(s) if __name__ == '__main__': main()
上一篇: 使用python批量处理excel
下一篇: Python内置ssl模块编程(1)
47827
46355
37249
34709
29297
25956
24868
19930
19508
17996
5774°
6397°
5908°
5952°
7052°
5896°
5926°
6420°
6386°
7754°