4

最近、私は TextMate の代わりに vim を使ってみましたが、VIM で最も見逃していた機能の 1 つは、TextMate のメソッド関数へのジャンプ (知らない人のために CMD + Shift + T) です。周りを見回しても、この機能をエミュレートする特定の方法は見たことがなく、VIM でこの種の機能を経験したことがある人がいるかどうか疑問に思っていました。

ご回答ありがとうございます。

パトリック

4

8 に答える 8

4

あなたはvimの「タグ」機能を探しています...私はここでタグに関する同様の質問に答えました: How to implement own tag jump in VIM with CTRL-]?

于 2009-10-24T17:05:40.330 に答える
2

この機能は、:FufBufferTagを使用してあいまい検索ツールに実装されています。チケットを見る

于 2011-02-18T15:54:15.957 に答える
0

カレットの下のクラスまたはメソッドの定義を検索し、ファイル名とその場所の行とともにツールチップに表示するTextMate Bundleコマンド(たとえば、 Ctrl +に簡単に割り当てることができます)を作成しました。見つかりました。

チェックアウト:TextMateにショートカットを追加して、ツールチップでクラスまたはメソッドの定義を
検索します。お役に立てば幸いです。

于 2011-10-08T21:42:56.927 に答える
0

ctags http://ctags.sourceforge.net/基本的に $ctags -Rでタグファイルを作成できます 次に、vim に入ったら :set tags=/path/to/tagsfile

これは、クラス名やメソッドなどだけでなく、任意のタグにもなります。通常モードでは、メソッド/クラス/ で ctrl-] を押すと、その位置にジャンプします。

サイド ウィンドウに現在のタグを表示する taglist プラグインを使用することもできます。 ctags

于 2009-10-24T22:46:08.617 に答える
0

私はほとんど同じ問題を抱えていましたが、迅速で汚い解決策を見つけました (これを .vimrc に貼り付け、:LS と入力して呼び出します)

function! s:ListFunctions()
vimgrep /function/j %
copen
endfunction
command! -bar -narg=0 LS call s:ListFunctions()

より多くの機能が必要な場合は、Exuberant Ctags が適しています。

于 2009-10-25T13:38:43.910 に答える
0

私は常に Vim を使用していますが、TextMate を使用したことがないので、良い提案を聞きたいです。少し重複する次のことを行います。

  1. def-space-<関数名の最初の数文字> を検索します。したがって、関数 foo に移動するには (Python または Ruby で、もちろん同じファイル内で)、入力/def foしてそこにいます。また、Vim でインクリメンタル検索を有効にしています。

  2. 頻繁に訪れる機能にはマークを使用します。そのmaため、関数の定義について説明し、'a後で戻ってきます。関数定義ではないことはわかっていますが、松葉杖です。

于 2009-10-24T16:05:23.467 に答える
0

この質問で説明されている機能には、IDE/エディターに応じてさまざまな名前があります。

  • Resharperでは「Goto File member」と呼んでいます
  • Sublime Text 2 では、「Goto Symbol」と呼ばれています。
  • PyCharmでは「Goto Symbol」と呼ばれています

上記の実装のすべてで機能は本質的に同じですが (TextMate でも非常に似ていると思います)。この機能は、メソッド/関数のインタラクティブなリストを表示します (メンバー変数/プロパティも含まれる可能性があります)。

このリストでは、メソッド/関数などの名前を入力することにより、インタラクティブなフィルタリングが可能です。リストでは通常、矢印キーを使用してメソッド/機能/その他を選択することもできます。method/function/etc を選択して Enter キーを押すと、選択した method/function/etc が定義されている現在のファイルの行に移動します。

この質問の既存のすべての回答のうち、この機能の合理的に類似した実装を提供していると思われる唯一の回答は、次のコマンドを使用することです。

:FufBufferTag 

vim のFuzzyFinderプラグインで。

taglist プラグインによって提供される機能は機能とはかなり異なるため、taglist プラグインの使用を提案する答えは良い解決策ではありません。taglist プラグインは、現在のファイル内のメソッドの概要を表示する機能と同様の機能を提供しますが、そのリストをリアルタイムでフィルタリングするインタラクティブな方法は提供しません。taglist プラグインを使用すると、タグ バッファーを検索できますが、他のエディターで提供される "Goto symbol" 機能ほど便利ではありません。

ここで、次のコマンドを使用するという別の提案を提供したいと思いました。

:CtrlPBufTag 

優れたCtrlp vim プラグインで。私の意見では、これは現在 vim で利用可能な "Goto Symbol" 機能の最高の実装です。

于 2012-11-15T21:03:44.000 に答える
0

ファイル検索に CommandT を使用し、特定の関数を検索するために / を使用しています。ただし、本当の問題は CSS にあります。Textmate の Cmd Shift T を使用すると、特定の CSS クラスにすばやくジャンプでき、時間を大幅に節約できます。

CTags は、パッチ (Google 経由で見つけた) を使用して再コンパイルしない限り、CSS の解析をサポートしていませんが、Textmate のように CSS クラスのあいまい検索を実行できるかどうかさえわかりません。Cmd Shift T 機能が本当に恋しいです。

于 2010-08-05T18:16:01.547 に答える