TextMate在VIM中跳转到功能?

时间:2009-10-24 15:49:56

标签: vim textmate

最近我一直在尝试使用vim而不是TextMate,而我在VIM中最常见的一个功能是TextMate跳转到方法功能(对于那些不知道的人,CMD + Shift + T) 。从环顾四周来看,我没有看到任何特定方式来模拟这个功能,并且想知道这里是否有人在VIM中有过这种功能的经验。

提前感谢您的回答

帕特里克

8 个答案:

答案 0 :(得分:4)

您正在寻找vim的'标签'功能...我在这里回答了关于标签的类似问题:How to implement own tag jump in VIM with CTRL-]?

答案 1 :(得分:2)

此功能已在fuzzyfinder中使用:FufBufferTag实现。 See the ticket

答案 2 :(得分:0)

我喜欢听到很好的建议,因为我一直使用Vim但没有使用TextMate。我做了以下略微重叠的事情。

  1. 搜索d-e-f-space-<函数名称的前几个字母>。所以要转到函数foo(在Python或Ruby中,当然在同一个文件中),我输入/def fo,我就在那里。我也在Vim中启用了增量搜索。

  2. 对我经常访问的功能使用标记。所以我ma在函数定义中,然后'a稍后再回到它。我知道这不是功能定义,但它是一个拐杖。

答案 3 :(得分:0)

你可以用ctags http://ctags.sourceforge.net/创建一个标签文件 基本上是$ ctags -R 一旦你进入vim:set tags = / path / to / tagsfile

这也将是任何标记,因此不仅仅是类名,方法等。在方法/类/的正常模式下ctrl-]它将跳转到该位置。

您还可以使用taglist插件,该插件将在侧窗口中显示当前标签。 ctags

答案 4 :(得分:0)

我遇到了同样的问题,我发现了一个快速而肮脏的解决方案(将其粘贴到.vimrc并通过键入:LS调用)

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

如果您需要更多功能,那么Exuberant Ctags会为您做得更好

答案 5 :(得分:0)

我正在使用CommandT进行文件搜索,然后使用/来搜索特定的功能。但是,真正的问题在于CSS。 Textmate中的Cmd Shift T可以快速跳转到特定的CSS类,这可以节省大量时间。

CTags不支持CSS解析,除非你用补丁重新编译(通过google找到),但我甚至不确定我们是否可以像Textmate一样对CSS类进行模糊搜索。我真的很想念Cmd Shift T功能。

答案 6 :(得分:0)

我编写了一个TextMate Bundle命令(您可以轻松地将其分配给 Ctrl +] ,例如)查找插入符号下的类或方法的定义,并将其显示在工具提示中,以及文件名和找到的行。

检查出来: Add a shortcut to TextMate to lookup a class or method definition in a tooltip
希望你会发现它很有用!

答案 7 :(得分:0)

此问题中描述的功能有许多不同的名称,具体取决于IDE / Editor:

  • 在Resharper中,它被称为“转到文件成员”
  • 在Sublime Text 2中,它被称为“Goto Symbol”
  • 在PyCharm中,它被称为“Goto Symbol”

虽然在所有上述实现中,该功能基本相同(我认为它在TextMate中也非常相似)。该功能会显示一个方法/功能的交互列表(可能还包括成员变量/属性)。

该列表允许通过键入方法/函数/等的名称进行交互式过滤。该列表通常还允许使用箭头键来选择方法/函数/等。点击带有方法/功能/ etc的回车键导航到当前文件中定义了所选方法/功能/等的行。

在这个问题的所有现有答案中,我看到的唯一一个似乎提供此功能的合理类似实现的是使用命令:

:FufBufferTag 

在vim的FuzzyFinder插件中。

建议使用taglist插件的答案不是一个好的解决方案,因为taglist插件提供的功能与该功能完全不同。 taglist插件提供类似的功能 - 能够查看当前文件中的方法大纲,但它不提供实时过滤该列表的交互方式。 taglist插件允许您搜索标记缓冲区,但这并不像其他编辑器中提供的“Goto符号”功能那样方便。

我想在这里提供一个替代建议,即使用命令:

:CtrlPBufTag 

在优秀的Ctrlp vim插件中。在我看来,这是迄今为止vim中目前可用的“转到符号”功能的最佳实现。