我正在尝试使用Sublime Text作为我的新编辑器,我遇到了一个意想不到的问题。我正在使用一个项目(Django Web应用程序),它有许多同名文件,位于不同的目录中。所以,我会有app1 / models.py,app2 / models.py ... app15 / models.py等。所以,如果我只是点击Cmd-P并输入models.py我得到一个相当大的列表,我必须滚动通过获取我想要的文件。在Vim中,我只需输入:e a
,点击TAB即可完成路径,然后在我找到合适的应用后,再次点击mo
点击标签,我就在那里。我如何在Sublime中做类似的事情?
答案 0 :(得分:2)
PackageControl上可能有一个包会提供这种行为,但是Sublime没有直接开箱即用。
既然你已经提到你是Sublime的新手,你可能没有意识到你正在使用的面板可能比你想象的更强大和有用。
特别是,您不必在框中键入完整的文件名或路径,而是可以键入文件名的片段,以便过滤列表。
例如,此代码库中大约有4,000个文件,我想从文件夹Reader.h
打开名为DevSrc/RegionalCenter/TSE/
的文件。正如您所注意到的,您可以使用名称过滤列表;我在这说:
可悲的是,事实证明我想要的文件恰好是列表中的最后一个,这需要一些滚动才能找到正确的文件。
在这种情况下,我知道我想要TSE
文件夹中的文件,所以我可以在我想要的文件名之前输入该部分路径片段,这会限制列表并带来我想要的文件在右上角蝙蝠:
如果您在显示的面板中检查结果,则可以看到匹配中的某些文本突出显示,告诉您如何应用匹配。
这表明您实际上根本不必输入完整的文件名;只要任何文本都可以工作,最好的匹配就会跳到顶部。因此,我可以更轻松地在Reader.h
文件夹或SIAC
文件夹中轻松找到TSE
:
此处需要注意的是,除了Sublime用于确定哪些文件匹配的所有内部标准外,还会考虑您之前的选择。
在这种情况下,当我输入tread
时,Reader.h
文件会跳到顶部;如果我真的想要Reader.m
文件,我可以在文本中添加m
来选择它。
另一方面,如果我向下箭头并按 Enter 选择文件,下次使用相同的文本执行相同的搜索时,Reader.m
会跳转到列表的顶部,因为当我输入tread
时,我告诉Sublime我想要的文件。
如第二个示例所示,您可以输入多个空格分隔的术语并使它们匹配(例如tse reader.h
)。如果您至少使用Sublime build 3154(目前需要您成为许可用户,因为它是开发版本),则面板中的术语可以按任何顺序排列并且仍然匹配。
这意味着我可以输入reader.h
来获取我想要的列表,然后输入tse
秒以提供更多过滤,这甚至更快,并且在开始之前不需要您知道完整的道路是什么。
这只是刮到了Goto Anything面板的力量表面;例如,可以尝试使用搜索字词models.py@
,models.py#
或models.py:10
。
有关详细信息,请查看unofficial documentation上的file navigation in Sublime。