vimでpythonファイルを編集するとき;
すべての関数またはクラスを一覧表示し、それらが定義されている行にジャンプする機会を得る良い方法は何ですか?
少し「手動」ですが:
:g/def\ .*
は行を表示し、通常モードでは、 を押し<line number>gg
てその行にジャンプできます。
以下のヤンの自己発見の答えに基づいて構築します。
ユーザーコマンド GJ (GrepJump! 用)
command! -nargs=1 GJ vimgrep <q-args> % | copen
ctags またはいくつかのバリアントを使用すると仮定すると、デフォルト:tag foo<Tab>
または:tag <Tab>
コマンドで十分ですが、他のファイルからタグを取得する場合があります。
:ilist def .*
別の解決策です。プロンプトで、次のように入力します:<Number><CR>
。
しかし、私はCtrlPが大好きです:CtrlPBufTag
:
TagList または Tagbar プラグイン。ctags、または豊富な ctagsをインストールする必要があります。
私のからの抜粋.vimrc
:
Bundle "majutsushi/tagbar"
nmap <script> <silent> <unique> <F4> :TagbarToggle<CR>
とった。コマンドを使用する:vim
と、検索はクイックフィックスリストにリダイレクトされます。したがって、
:vim /def\ ./ %
:copen
つまり、「現在のファイルで vim[grep] を実行する」および「クイックフィックス ウィンドウを開く」と一致する場所にジャンプすると、タスクが実行されます。
jpythonfoldでメソッド/クラス コードの折りたたみを使用するのが好きです。
まさにあなたが求めていたものではありませんが、すばやくナビゲートできるクラス、メソッド、および関数の優れた表示を提供します。