5

vimでpythonファイルを編集するとき;

すべての関数またはクラスを一覧表示し、それらが定義されている行にジャンプする機会を得る良い方法は何ですか?

4

5 に答える 5

4

少し「手動」ですが:

:g/def\ .*

は行を表示し、通常モードでは、 を押し<line number>ggてその行にジャンプできます。

以下のヤンの自己発見の答えに基づいて構築します。

ユーザーコマンド GJ (GrepJump! 用)

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

ctags またはいくつかのバリアントを使用すると仮定すると、デフォルト:tag foo<Tab>または:tag <Tab>コマンドで十分ですが、他のファイルからタグを取得する場合があります。

:tag foo<Tab>

:ilist def .*別の解決策です。プロンプトで、次のように入力します:<Number><CR>

:ilist def .*

しかし、私はCtrlPが大好きです:CtrlPBufTag:

:CtrlPBufTag

于 2013-02-07T09:08:46.867 に答える
1

TagList または Tagbar プラグイン。ctags、または豊富な ctagsをインストールする必要があります。

私のからの抜粋.vimrc

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

とった。コマンドを使用する:vimと、検索はクイックフィックスリストにリダイレクトされます。したがって、

:vim /def\ ./ %
:copen

つまり、「現在のファイルで vim[grep] を実行する」および「クイックフィックス ウィンドウを開く」と一致する場所にジャンプすると、タスクが実行されます。

于 2013-02-07T08:49:46.980 に答える
0

jpythonfoldでメソッド/クラス コードの折りたたみを使用するのが好きです。

jpythonfold を使用した vim 編集セッションのスクリーンショット

まさにあなたが求めていたものではありませんが、すばやくナビゲートできるクラス、メソッド、および関数の優れた表示を提供します。

于 2013-02-07T08:15:17.097 に答える