任何人都使用默认的代码片段在Xcode?有太多的无用的代码片段出现,这样,我甚至不希望有创建我的片段。因此,寻找对ST答案,但他们并没有太大的帮助。
是否有任何改善,所以我可以删除代码片断在Xcode 6?
对于进一步的问题,我可以导入或导出定制的片段,这样我就可以在不同的电脑上使用它们?
非常感谢,
是的,你可以删除默认的片段。由于片段被保存在XML
在路径中的plist
文件:
/applications/Xcode.app/contents/frameworks/IDE kit.framework/versions/A/resources/system code snippets.code snippets
您可以创建与下面的代码TextEdit
一个空的片段文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array></array>
</plist>
并将其保存为SystemCodeSnippets.codesnippets
。以上命名的文件夹中的文件替换它,也没有系统默认片段了。
有一个应用程序称为SnippetEdit
它可以将你所有的Xcode默认片段用户片段。我在Xcode 7 Beta版和Xcode的6试过。
但是,你不应该删除在Xcode中,当他们默认片段用户片段。由于Xcode的只是重新创建这些:-(。
至少你可以改变他们的方式。更改标题和内容。
我只使用快速的片段,并也想删除所有这些C,C ++和objC片段。在文件“/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/Current/Resources/SystemCodeSnippets.codesnippets” A清理似乎工作:我只有三个留在代码片段迅速片断库面板中。这些片断的过滤和选择工作,但打回车键时,而在片段的过滤器领域的Xcode崩溃了好几次。所以,我恢复了旧文件,并再次有完整列表。
在计算器搜索这里说服我不要删除默认的代码段,但是将它们存储在具有相同ID和更高的版本号作为用户片段。
作为一个小的编程任务我创建了一个OS X的Projekt并用下面的代码就在产生AppDelegate.swift的在applicationDidFinishLaunching:
func applicationDidFinishLaunching(aNotification: NSNotification) {
let filepathOfSystemSnippets = "/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/Current/Resources/SystemCodeSnippets.codesnippets"
let folderForUserSnippets = "\(NSHomeDirectory())/Library/Developer/Xcode/UserData/CodeSnippets"
print("reading \(filepathOfSystemSnippets)")
let arrayOfDicts = NSMutableArray(contentsOfFile: filepathOfSystemSnippets)
// print("arry has \(arrayOfDicts?.count) entries")
for (ix, dict) in arrayOfDicts!.enumerate() {
let userDict = NSMutableDictionary(dictionary: dict as! [NSObject : AnyObject])
userDict["IDECodeSnippetVersion"] = 2
userDict["IDECodeSnippetTitle"] = "free user snippet \(ix) "
userDict["IDECodeSnippetSummary"] = ""
userDict["IDECodeSnippetContents"] = ""
userDict["IDECodeSnippetLanguage"] = "Xcode.SourceCodeLanguage.Swift"
userDict["IDECodeSnippetCompletionPrefix"] = ""
userDict["IDECodeSnippetUserSnippet"] = true
if let id = dict["IDECodeSnippetIdentifier"] as? String {
let pathOfUserSnippet = "\(folderForUserSnippets)/\(id).codesnippet"
if NSFileManager.defaultManager().fileExistsAtPath(pathOfUserSnippet){
print("snippet with id \(id) already exists in \(pathOfUserSnippet) -> don't write.")
} else {
userDict.writeToFile(pathOfUserSnippet, atomically: false)
// print("write snippet with id \(id) in \(pathOfUserSnippet)")
}
}
}
}
我用我的答案中发现的硬编码文件夹名称。所以,如果他们在Xcode的未来版本更改可能需要改变。
应用程序的运行后,用户代码片断文件夹中填充了约60清洁片段准备装满自己的源代码。
在Xcode 10默认片段是在
/Applications/Xcode.app/Contents/PlugIns/IDESourceEditor.framework/Versions/A/Resources/SystemCodeSnippets.codesnippets
要删除的内容将其更改为
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array></array>
</plist>
答案是:YES,
由用户生成的这些代码片段保存在路径
~/Library/Developer/Xcode/UserData/CodeSnippets
你可以简单地传递他们身边来保存和恢复它们。所以,你可以与他人分享,而另一方面,在其他Mac中使用它们。