6

您好,提前感谢您对此提供的任何帮助。

我曾尝试在这里和网络上的其他地方打猎,但没有找到任何帮助。如果这很明显或者之前已经被问过,那么我很抱歉。

我正在使用 Sublime Text 2,我经常会收到大量打开的文件,因为它们符合我一直在研究的标准。

我想在 Sublime 文本中将所有这些文件列出一个新的文本文件。

类似于:为每个打开的文件写入文件名(或可能是完整的文件路径)

我知道我可以从打开的文件面板到达那里,但它只列出了文件,没有与我预期的交互。想我也许可以突出显示文件并使用复制和粘贴来获取列表。

这是我错过的内置功能吗?是否已经有一个包可以做到这一点?我是否必须弄清楚如何编写插件才能做到这一点?

再次,非常感谢您在这方面的任何和所有帮助。

(如果有什么不同,那就是 Sublime text 2,主要是在 Windows 上,但我也会定期切换到 Mac 来完成不同的工作)

4

2 回答 2

2
import sublime
import sublime_plugin


class RunningfileCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.window().new_file().insert(edit, 0, "\n".join([view.file_name() for view in sublime.active_window().views() if view and view.file_name()]))
  1. 使用上述代码创建文件并保存为filelist.py
  2. 打开崇高,转到首选项-> 选择浏览包
  3. 转到用户文件夹并移动到文件上方(filelist.py
  4. 现在转到首选项 - >键绑定
  5. 在其上添加以下内容:

    [{“键”:[“f12”],“命令”:“运行文件”}]

  6. 现在按 f12,您将在新窗口中获得所有打开的文件路径

谢谢

于 2018-03-28T08:40:35.933 回答
0

这是一种获取类似内容的 hacky 且相对快速的方法:

  1. Ctrl+ Shift+ F(这会弹出Find in files对话框)
  2. 确保 Regex 模式已打开(.*按钮)并在之后搜索$,例如
  3. 您现在有一个包含所有内容的大文件。希望不要太大以减慢 Sublime 的速度。现在按Ctrl+F进行正常Search对话
  4. 输入^_(插入符号+空格,而不是下划线)并点击Find All
  5. Ctrl++Shift删除K所有这些内容行

那里!现在您有了一个包含完整路径的所有打开文件的列表。

更简洁:

  • Ctrl+ Shift+F
  • .*按钮打开,搜索后$
  • Ctrl+F
  • .*按钮仍然打开,搜索后^[space]->Find All
  • Ctrl+ Shift+K

另一种方法是为自己制作一个小插件,只需按一下键即可为您做到这一点。

SublimeText2 API中,您可以获得一些有用的方法:

Class sublime.Window.views()    [View]    Returns all open views in the window.

然后

Class sublime.View.file_name()    String    The full name file the file
                                            associated with the buffer, or
                                            None if it doesn't exist on disk.

您可以从现有插件开始。不过,这涉及到一些 Python 编程技能。

于 2013-03-06T20:12:53.610 回答