为 vim 目录树插件 NERDTree 批量添加 python 模块书签
比如使用 :Bookmark xxx 可以为当前目录标记为名称为xxx的书签,之后使用 :BookmarkToRoot xxx 命令即可直接跳到该目录下。
在使用vim开发python的过程中,我们时常会碰到查看第三方模块源代码的情况。我们可以通过Bookmark命令来手动为第三方模块添加书签来方便查看源代码,但是当模块多起来的话,这样做会很麻烦。
于是我这个懒人写了一个脚本批量把python的第三方模块加入到NERDTree的Bookmark中去。
# coding: utf-8
"""
将python的第三方模块加入到
vim插件NERDTree的书签文件中
Author: piglei2007@gmail.com
"""
import os
import sys
Bookmarks = os.path.join(os.path.expanduser('~'), ".NERDTreeBookmarks")
def get_modules():
"""获得modules"""
ret = set()
for path in sys.path:
if not path.rstrip("/").endswith("packages"):
continue
packages = [ x.split("-")[0] for x in os.listdir(path) if os.path.isdir(os.path.join(path, x)) ]
ret.update(packages)
return ret
def main():
modules = get_modules()
f = open(Bookmarks, "a+")
# 已经存在的书签不做处理
existed = set([ x.split()[0] for x in f.readlines() if x.strip() ])
for module in sorted(modules - existed):
try:
m = __import__(module)
root = os.path.dirname(m.__file__)
except:
continue
print "Writing...", module
print >>f, module, root
if __name__ == "__main__":
main()
之后便可以方便的使用:BookmarkToRoot django、:BookmarkToRoot tornado、:BookmarkToRoot zope等来跳到模块目录了。
# 作者:小猪,浮云脱水小说站 站长。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。