在Xcode中sorting文件列表?

有没有办法在Xcode按字母顺序排列我的文件列表说Classes文件夹?

我知道我可以把他们拖到一边,但是有很多文件很痛苦。

我很惊讶,我不能右键点击文件夹,并说要sorting。

点击文件夹,然后点击编辑>sorting>按名称

这是一个Ruby脚本,它将在Xcode 4项目文件(可能是Xcode 3以及我没有尝试过)中对其各自组中的所有文件进行sorting。

用法:

ruby sort.rb <infile> <outfile> 

其中<infile>是未sorting的.pbxproj文件,<output>将是已sorting的版本。 不要让它们成为同一个文件。

 #!/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" 

沙皇有你想要的方式,而不是自动sorting在任何时候的优势。

有些类可能会以某种方式相关,但是名字并不紧挨着,我已经使用了。 🙂

jedediah的ruby剧本效果很好。 要sorting正在复制的资源,您可以添加:

 state = :group if line =~ /^\s*files\s*=\s*\x28\s*$/ 

请注意,sorting区分大小写(大写字母在前)。 为了使其不敏感,使用:

 group << [$1.downcase,line] 

XCode5中没有一个简单的解决scheme。

  • 我在文本编辑器中打开了pbxproj文件。
  • 向下导航到/ *开始PBXResourcesBuildPhase节* /
  • select文件中的一切。
  • 复制到一个新的文本文件。
  • 用/ treplace/ *(制表符)
  • 全选,复制并粘贴到空白的excel文件中。 你应该有2列的数据
  • 在检索区2插入一列
  • 使该列的所有行/ *
  • 对第3列的表格进行sorting
  • 复制所有数据并粘贴回pbxproj文件中的部分
  • 保存存档

这应该sorting项目的“复制束资源”部分。

我觉得这样做很肮脏,但嘿 – 它的作品