1

vimを使用する気の利いたマッピングを追加しようとしていますcommand-t。アイデアは、クラス名の上にカーソルを置いて、を押すと、そのクラス<leader>fに関連する.javaファイルがすぐに新しいバッファーで開かれるということです(私はにhidden設定しましたon)。

私の.vimrc内容

map <leader>f :CommandT<cr>=expand("<cword>")<tab><cr>

これは、カーソルワードが展開されていないことを除いて、完全に機能し、=expand("<cword>")カーソルワード自体ではなく、を検索することになります。

私も簡単に試しました。

map <leader>f :CommandT<cr><cword><tab><cr>

ほぼ同じ効果(<cword>貼り付けて検索)。良いニュースは、私が手動で行う場合です。

map <leader>f :CommandT<cr>MyClassName<tab><cr>

それは完璧に機能するので、少なくとも理論は正しいです。

4

2 に答える 2

4

フィードキーを使用する必要があります。

nnoremap \f :<C-u>execute'CommandT'<Bar>call feedkeys(expand('<cword>')."\t\<LT>CR>",'t')<CR>

。その他の注意事項:map再マッピングが本当に必要な場合(したがってnore、ここでは必要がない)とそのすべてのモード(通常、オペレーター保留、ビジュアル)(したがって先頭n)を除いて、使用しないでください。

\t二重引用符で囲まれた文字列内は、\<LT>Tab>またはの省略形です<C-v><Tab>(マッピング内では、これらのいずれかを使用して、リテラル\<Tab>を文字列(最初)またはリテラルタブ(2番目)に挿入する必要があります)。

于 2012-11-06T03:20:21.190 に答える
1

ctagsを使用してください。それが目的です。

  1. ctagsをインストールします。

  2. プロジェクトにインデックスを付けます。

    :!ctags -R .
    
  3. プロジェクト内のどこにいても、Vimが正しいtagsファイル(プロジェクトのインデックス)を見つけるようにしてください。

    set tags=./tags,tags:$HOME
    
  4. メソッドまたはクラス名にカーソルを置き、次のショートカットを押して定義にジャンプします。

    <C-]>
    

    または、これで新しいウィンドウを開きます。

    <C-w>]
    

    そして、これはジャンプバックします:

    <C-t>
    

    または、これは小さなプレビューウィンドウに署名を表示します。

    <C-w>}
    

詳細については、を参照:help tagsしてください。

于 2012-11-06T08:43:30.280 に答える