如何在Emacs中使用Python的meta-dot (M-.)?
有没有类似于slime的工具可以用在Python上?
举个例子,如果我把光标放在foo()上,然后按M-.(跳转到定义),我希望能看到foo这个函数的源代码定义。
这个功能应该可以在以下情况下都能使用:
1) 在本地项目目录中
2) 在某个~/.virtualenvs/bar/lib/site-packages目录中
3) 在其他的Python路径中
4) 使用虚拟环境时(也就是说,它应该能在我当前的虚拟环境中查找)
pymacs和ropemacs的组合能做到这些吗?
6 个回答
5
M-. 通常会运行 "find-tag
" 这个功能。你需要为你的 Python 源文件创建一个 TAGS 文件。然后在使用 M- 之前,你要先 "visit-tags-table
"。这样,Emacs 就能跳转到所有标签的定义。你可以输入 C-u M- 来跳转到下一个标签的定义。想了解更多,可以查看 find-tag 的文档。也可以查阅 Emacs 的帮助,了解如何从 Python 源文件创建 TAGS 文件。
比如,你可以使用 Exuberant Ctags 来创建 TAGS 文件。
首先,进入你的 Python 文件所在的根目录,然后执行以下操作:
ctags -e -R .
通常,TAGS 文件会在项目的根目录下创建。
18
为了避免使用 -e 这个选项,你可以使用 etags,并通过 find 命令递归地添加所有的 py 文件:
find . -type f -name '*.py' | xargs etags