在Xcode中对文件列表排序?

在Xcode中对文件列表排序?,xcode,Xcode,在Xcode中有没有一种方法可以按字母顺序对我的文件列表进行排序,比如说在Classes文件夹下 我知道我可以把它们拖来拖去,但是有大量的文件,这很痛苦 我很惊讶我不能右键单击文件夹并说要排序。单击文件夹,然后单击“编辑>排序>按名称”Czar以您想要的方式进行排序,而不是始终自动进行排序 有些类可能以某种方式相互关联,但它们的名称并不相邻,我已经用过了 下面是一个Ruby脚本,它将对Xcode 4项目文件中各自组内的所有文件进行排序,可能还有Xcode 3,但我还没有尝试过 用法: ruby

在Xcode中有没有一种方法可以按字母顺序对我的文件列表进行排序,比如说在Classes文件夹下

我知道我可以把它们拖来拖去,但是有大量的文件,这很痛苦


我很惊讶我不能右键单击文件夹并说要排序。

单击文件夹,然后单击“编辑>排序>按名称”

Czar以您想要的方式进行排序,而不是始终自动进行排序


有些类可能以某种方式相互关联,但它们的名称并不相邻,我已经用过了

下面是一个Ruby脚本,它将对Xcode 4项目文件中各自组内的所有文件进行排序,可能还有Xcode 3,但我还没有尝试过

用法:

ruby sort.rb <infile> <outfile>
其中是未排序的.pbxproj文件,将是已排序的版本。不要让它们成为同一个文件

#!/usr/bin/env ruby

state = :primary
group = []
file_count = group_count = 0

File.open ARGV[0] do |infile|
  File.open ARGV[1], 'w' do |outfile|
    infile.each_line do |line|
      case state

      when :primary
        # copy lines until and including "children = ("
        outfile.write line
        state = :group if line =~ /^\s*children\s*=\s*\x28\s*$/

      when :group
        if line =~ /^\s*[0-9A-F]+\s*\/\* (.*) \*\/,\s*$/
          # add file to current group if "<guid> /* <filename> */,"
          group << [$1,line]
          file_count += 1

        else
          # otherwise, output sorted files,
          # empty the group, and go back to primary state
          group.sort.each do |fn,ln|
            outfile.write ln
          end

          state = :primary
          group = []
          outfile.write line
          group_count += 1
        end

      end
    end
  end
end

puts "Sorted #{file_count} files in #{group_count} groups"

jedediah的ruby脚本非常棒。要对要复制的资源进行排序,您可以添加:

state = :group if line =~ /^\s*files\s*=\s*\x28\s*$/
请注意,排序首先是区分大小写的大写字母。要使其不敏感,请使用:

group << [$1.downcase,line]

XCode5中并没有一个简单的解决方案

我在文本编辑器中打开了pbxproj文件。 向下导航到/*开始PBXResourcesBuildPhase部分*/ 选择文件中的所有内容。 复制到新的文本文档。 将/*替换为\t制表符 选择全部,复制并粘贴到空白excel文档中。您应该有两列数据 在位置2处插入一列 为该列创建所有行/* 在第3列对工作表进行排序 复制所有数据并粘贴回pbxproj文件中的分区 保存文件 这将对项目的复制包资源部分进行排序


我觉得这样做有点脏,但是嘿-它很管用

-1因为你不必总是对你的文件进行排序,这不是我该如何对我的文件进行排序的答案?我无法评论,因为我没有任何代表。所以这是一个答案。就我个人而言,我认为如果人们试图提供帮助,就不应该对他们进行修改。似乎XCode 4中没有这个选项。知道如何在新版本中做到这一点吗?我已经为XCode4添加了一个后续问题,因为这还没有收到。不确定Xcode的早期版本,但在4.5中,它位于“编辑>排序>按名称”下。或者,控制单击,然后选择“排序依据”Name@SnowCrash当我选择了构建阶段时,我的编辑/排序/按名称是灰色的。@SnowCrash,我是否每次添加新文件时都必须手动执行此操作?我使用的是XCode 5,但当我添加新文件时,它似乎不会自动重新排列排序顺序。