【问题标题】:Finding files by relative path in sublime text 3在崇高文本3中通过相对路径查找文件
【发布时间】:2018-04-18 19:12:04
【问题描述】:

我正在尝试使用 Sublime Text 作为我的新编辑器,但遇到了一个相当意外的问题。我正在使用一个项目(Django Web 应用程序),该项目有许多位于不同目录中的同名文件。所以,我会有 app1/models.py、app2/models.py ... app15/models.py 等。所以如果我只是点击 Cmd-P 并输入 models.py,我会得到一个相当大的列表,我必须滚动通过获取我想要的文件。在 Vim 中,我只需键入 :e a,点击 TAB 以完成路径,然后一旦我有了正确的应用程序,我再次键入 mo 并点击 tab,我就在那里。如何在 Sublime 中做类似的事情?

【问题讨论】:

    标签: python sublimetext3


    【解决方案1】:

    PackageControl 上可能有一个包可以提供这种行为,但 Sublime 没有开箱即用的类似功能。

    既然您提到您是 Sublime 的新手,您可能没有意识到您使用的面板可能比您想象的更强大和有用。

    特别是,您不必在框中输入完整的文件名或路径,而是可以输入文件名的片段来过滤列表。

    例如,这个代码库中大约有 4,000 个文件,我想从文件夹 DevSrc/RegionalCenter/TSE/ 打开一个名为 Reader.h 的文件。正如您所注意到的,您可以使用名称过滤列表;说我在这里做:

    对我来说可悲的是,我想要的文件恰好是列表中的最后一个文件,这需要滚动才能找到正确的文件。

    在这种情况下,我知道我想要来自 TSE 文件夹的文件,所以我可以在我想要的文件名之前输入那个部分路径片段,这会限制列表并将我想要的文件带到就在上面:

    如果您检查面板中显示的结果,您会看到匹配中的某些文本被突出显示,告诉您匹配是如何应用的。

    这表明您实际上根本不需要输入完整的文件名;任何文本都可以,最佳匹配项会跳到顶部。所以在这里我可以很容易地找到SIAC文件夹中的Reader.h或者更简单的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

    有关更多信息,您可以查看file navigation in Sublime 上的unofficial documentation

    【讨论】:

    • 很棒的答案。我没有意识到我可以在那个东西中输入多个单词
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-12
    • 2016-09-06
    • 2016-08-28
    • 2015-05-31
    • 1970-01-01
    • 2012-10-04
    • 2012-02-27
    相关资源
    最近更新 更多