Vim:简单的“跳转到文件”命令?

时间:2010-08-12 01:49:02

标签: vim

“按名称跳转到源树中某处的文件”最简单的方法是什么?例如,如果我正在使用包含libfoo/foo/foo.py的“libfoo”,我希望能够从foo.py [0]内的任何位置跳转到libfoo/**

使用标签文件可能有某种方法吗?

[0]:即libfoo/及其子目录。

7 个答案:

答案 0 :(得分:14)

**添加到逗号分隔的vim path变量(非系统路径)中,如果您在项目的某个父目录中,则使用:

:find foo.py

答案 1 :(得分:6)

结帐command-tFuzzyFinderFuzzyFinder_Textmate

就个人而言,我发现command-t拥有最好的用户界面,但是FuF_Textmate最适合在非常大的项目中快速到达正确的位置(这就是为什么我在尝试所有3之后使用它)

请注意,fuzzyfinder_textmate没有得到其原始作者的维护,因此您可能需要浏览gh网络选项卡以查找谁拥有最新的分支。还要注意安装它有点痛苦。

答案 2 :(得分:2)

您可以将文件名的Vim选项卡完成与**递归目录扩展结合使用。

e.g。输入::e libfoo/**/foo.py并点击TAB。这将从libfoo目录向下搜索以找到匹配的文件。如果有多个匹配项,您可以使用TAB键循环访问它们。当您找到想要的那个按回车键完成命令并编辑文件时。

有关**匹配的更多信息,请:h starstar。它需要使用+ path_extra选项编译的Vim版本。

如果您已经编辑过文件,也可以使用:b name命令在缓冲区中搜索部分名称匹配。例如:b foo.py<TAB>将扩展为其中任何位置都包含“foo.py”的缓冲区名称。注:它匹配整个路径,因此:b foo<TAB>将匹配所有缓冲区与libfoo目录中的文件。

答案 3 :(得分:1)

ctrlp.vim

完整路径模糊文件缓冲区 mru 标记 ... Vim的发现者。

  • 用纯Vimscript编写,适用于MacVim,gVim和Vim 7.0 +。
  • 完全支持Vim的regexp作为搜索模式。
  • 内置最近使用(MRU)文件监控。
  • 内置项目的根查找器。
  • 一次打开​​多个文件。
  • 创建新文件和目录。
  • 可扩展的。

您可以在https://github.com/ctrlpvim/ctrlp.vim找到它。

答案 4 :(得分:1)

ctags --extra=f . 创建与指向第一行的文件同名的标记:

ctags -R --extra=f .

然后你可以这样做:

:tag file_na

并完成标签。

提到:Vim and ctags: tag filenames

答案 5 :(得分:0)

检查一下:

https://github.com/zhchang/quick_file

独特功能: 1.你不需要知道究竟在哪里,只要它在其中一个子目录中 2.你不必记住全名,片段会做 3.它会进行最浅层的匹配,但是如果提供的路径碎片越多,它就越深。

答案 6 :(得分:-1)

map <S-F12> :execute "!start explorer \"" . expand( "%:p:h" ) . "\""<CR>

在您正在使用的文件的目录中启动资源管理器窗口