Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 如何在Sublime text 2中创建打开文件的文本列表_File_Sublimetext2 - Fatal编程技术网

File 如何在Sublime text 2中创建打开文件的文本列表

File 如何在Sublime text 2中创建打开文件的文本列表,file,sublimetext2,File,Sublimetext2,您好,提前谢谢您的帮助 我曾尝试在这里和网上的其他地方搜索,但没有找到任何帮助。如果这是显而易见的,或者之前有人问过,那么我很抱歉 我使用的是Sublime Text 2,我经常会看到大量打开的文件,因为它们符合我一直在研究的标准 我想列出所有这些文件出一个新的文本文件,在崇高的文本 比如: 对于每个打开的文件 写入文件名(或可能是完整的文件路径) 下一个 我知道我可以从“打开的文件”面板到达那里,但它只列出了文件,没有与它的交互,这符合我的预期。我想我可能能够突出显示文件,并使用复制和粘贴来获

您好,提前谢谢您的帮助

我曾尝试在这里和网上的其他地方搜索,但没有找到任何帮助。如果这是显而易见的,或者之前有人问过,那么我很抱歉

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

我想列出所有这些文件出一个新的文本文件,在崇高的文本

比如: 对于每个打开的文件 写入文件名(或可能是完整的文件路径) 下一个

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

这是我错过的内置功能吗?是否已经有一个包来执行此操作?我是否需要解决如何编写插件来实现这一点

再次感谢您在这方面提供的一切帮助


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

这里有一个简单且相对快速的方法来获取类似的内容:

  • Ctrl
    +
    Shift
    +
    F
    (这将打开
    在文件中查找
    对话框)
  • 例如,确保Regex模式已打开(
    *
    按钮),并在
    $
    后搜索
  • 您现在有一个包含所有内容的大文件。希望不要太大,以减缓升华。现在点击
    Ctrl
    +
    F
    进入正常的
    搜索
    对话框
  • 输入
    ^ 
    (插入符号+空格,而不是下划线)并点击
    查找全部
  • Ctrl
    +
    Shift
    +
    K
    删除所有内容行
  • 那里!现在,您有了一个包含完整路径的所有打开文件的列表

    更简洁:

    • Ctrl
      +
      Shift
      +
      F
    • *
      按钮打开,在
      $
      后搜索
    • Ctrl
      +
      F
    • *
      按钮仍处于打开状态,在
      ^[space]
      ->
      后搜索查找所有
    • Ctrl
      +
      Shift
      +
      K

    另一种方法是为自己制作一个小插件,以便在击键时为自己实现这一点

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

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

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

    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()]))
    
  • 使用上述代码创建文件并保存为filelist.py
  • 打开升华,转到首选项->选择浏览打包
  • 转到用户文件夹并移动到文件上方(filelist.py
  • 现在转到首选项->键绑定
  • 添加以下内容:

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

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

  • 谢谢

    谢谢你。这当然有点困难,但似乎奏效了!只要记得将“查找所有文件”过滤器设置为“仅打开文件”!由于打开的文件是通过查看一个非常大的项目来查找一些位以供进一步分析的结果,因此我最终得到了近600万行的查找结果!如果这是唯一的方法,我相信我可以在这段时间内解决这个问题。。。我想相信有一个更简单的方法——但也许不是!再次感谢您的帮助-这非常有用!我的第一个想法是为每个文件查找一些唯一的字符,比如EOF,但我没能做到。谢谢,api看起来是个不错的选择。我还没有尝试过使用它。我应该看看我能做些什么。我只是希望这是在某处“烤”出来的……好奇。我不确定我是否明白。(我理解正则表达式)。Ctrl-shift-F,选择regex按钮,搜索$,列出文件名和每个文件的所有内容。但我不明白后一种方法,即删除内容。您有一个结果窗口,显示每个文件的所有文件名和内容。然后对“^”执行ctrl-f搜索(只搜索结果窗口),这样任何以空格开头的行都会保留内容,并在以空格开头的行旁边放置一个标记。焦点仍然在“^”,然后执行ctrl-shift-k,删除当前行,但只删除“^”,因此在执行步骤1-5之后,所有步骤都将被删除。我仍然有一个结果窗口,列出所有文件名及其内容。ctrl-shift-k不会从“结果”窗口中删除所有文件的内容。知道如何同时获取这些文件的内容吗?
    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()]))