5

在 vim 中编辑 python 文件时;

什么是列出所有函数或类以及跳转到定义它们的行的好方法?

4

5 回答 5

4

有点“手动”但是:

:g/def\ .*

将向您显示行,在正常模式下,您可以按<line number>gg跳到该行。

基于 jan 自己找到的答案如下:

用户命令 GJ(用于 GrepJump!)

command! -nargs=1 GJ vimgrep <q-args> % | copen
于 2013-02-07T08:16:23.160 回答
1

TagList 或 Tagbar 插件。您将需要安装 ctags 或exuberant ctags

摘自我的.vimrc

Bundle "majutsushi/tagbar"
  nmap <script> <silent> <unique> <F4> :TagbarToggle<CR>
于 2013-02-07T08:15:03.347 回答
1

知道了。如果您使用该:vim命令,您的搜索将重定向到 quickfixlist。因此,

:vim /def\ ./ %
:copen

即“在当前文件中执行vim [grep]”和“打开快速修复窗口”以跳转到匹配项将完成任务。

于 2013-02-07T08:49:46.980 回答
1

假设您使用 ctags 或某些变体,默认值:tag foo<Tab>:tag <Tab>命令可能就足够了,但您可能会从其他文件中获取标签:

:tag foo<Tab>

:ilist def .*是另一种解决方案。在提示符下,键入:<Number><CR>

:ilist 定义 .*

但我喜欢CtrlP:CtrlPBufTag

:CtrlPBuf标签

于 2013-02-07T09:08:46.867 回答
0

我喜欢将方法/类代码折叠与jpythonfold一起使用:

使用 jpythonfold 的 vim 编辑会话的屏幕截图

不完全符合您的要求,但它确实提供了可以快速导航的类、方法和函数的良好显示。

于 2013-02-07T08:15:17.097 回答