“按名称跳转到源树中某处的文件”最简单的方法是什么?例如,如果我正在使用包含libfoo/foo/foo.py
的“libfoo”,我希望能够从foo.py
[0]内的任何位置跳转到libfoo/**
。
使用标签文件可能有某种方法吗?
[0]:即libfoo/
及其子目录。
答案 0 :(得分:14)
将**
添加到逗号分隔的vim path
变量(非系统路径)中,如果您在项目的某个父目录中,则使用:
:find foo.py
答案 1 :(得分:6)
结帐command-t,FuzzyFinder或FuzzyFinder_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)
完整路径模糊文件,缓冲区, mru ,标记, ... 强者> Vim的发现者。
答案 4 :(得分:1)
ctags --extra=f .
创建与指向第一行的文件同名的标记:
ctags -R --extra=f .
然后你可以这样做:
:tag file_na
并完成标签。
答案 5 :(得分:0)
检查一下:
https://github.com/zhchang/quick_file
独特功能: 1.你不需要知道究竟在哪里,只要它在其中一个子目录中 2.你不必记住全名,片段会做 3.它会进行最浅层的匹配,但是如果提供的路径碎片越多,它就越深。
答案 6 :(得分:-1)
map <S-F12> :execute "!start explorer \"" . expand( "%:p:h" ) . "\""<CR>
在您正在使用的文件的目录中启动资源管理器窗口