在 vim 中编辑 python 文件时;
什么是列出所有函数或类以及跳转到定义它们的行的好方法?
有点“手动”但是:
:g/def\ .*
将向您显示行,在正常模式下,您可以按<line number>gg
跳到该行。
基于 jan 自己找到的答案如下:
用户命令 GJ(用于 GrepJump!)
command! -nargs=1 GJ vimgrep <q-args> % | copen
TagList 或 Tagbar 插件。您将需要安装 ctags 或exuberant ctags。
摘自我的.vimrc
:
Bundle "majutsushi/tagbar"
nmap <script> <silent> <unique> <F4> :TagbarToggle<CR>
知道了。如果您使用该:vim
命令,您的搜索将重定向到 quickfixlist。因此,
:vim /def\ ./ %
:copen
即“在当前文件中执行vim [grep]”和“打开快速修复窗口”以跳转到匹配项将完成任务。
假设您使用 ctags 或某些变体,默认值:tag foo<Tab>
或:tag <Tab>
命令可能就足够了,但您可能会从其他文件中获取标签:
:ilist def .*
是另一种解决方案。在提示符下,键入:<Number><CR>
:
但我喜欢CtrlP的:CtrlPBufTag
:
我喜欢将方法/类代码折叠与jpythonfold一起使用:
不完全符合您的要求,但它确实提供了可以快速导航的类、方法和函数的良好显示。