我正在尝试向使用vim
的{{1}}添加漂亮的映射。我的想法是我可以将光标放在类名上,点击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>
它完美无缺,所以至少理论是正确的。
答案 0 :(得分:3)
你必须使用feedkeys:
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>
插入字符串(第一个)或文字标签(第二个))。
答案 1 :(得分:2)
使用ctags,这就是它的用途。
安装ctags。
为您的项目编制索引:
:!ctags -R .
确保Vim在您的项目中找到正确的tags
文件(项目的索引):
set tags=./tags,tags:$HOME
将光标放在方法或类名称上,然后点击以下快捷方式跳转到定义:
<C-]>
或者这个打开一个新窗口:
<C-w>]
这个要跳回来:
<C-t>
或者这个在小预览窗口中显示签名:
<C-w>}
有关详情,请参阅:help tags
。