给Xcode加点料

给Xcode加点料



在第三次Raizlabs Lightning Talks上,我吃了一个Scotch bonnet 辣椒,随后展示了关于Xcode的13个提示和技巧。如果你错过了这次讨论,或者想了解其中的细节,下面有一个视频,还有我提到的所有内容的文字版,以及一些额外的东西。


“给Xcode加点料”是受到Hot Pepper Gaming的启发。Hot Pepper Gaming是YouTube上很有名的一个频道,内容是很多专业的游戏测评员在吃了超级辣的辣椒之后,是如何测评视频游戏的。




Mac 键盘符号

首先让我们再来看一下这些怎么也记不住的键盘符号。

⌘ Command

⇧ Shift

⌥ Option

⌃ Control

↩ Return

← ↓ → ↑ 方向键


给Xcode加点料——快捷键

1、Control+方向键:按驼峰移动光标 

在编辑器的任何文本中,你可以使用⌃→ 和 ⌃←,按字符串的驼峰向前或向后移动光标。举个例子,如果光标在tableView的最前面,你想把光标移动到tableView的中间,就可以按⌃→ ,光标会向右移动一个驼峰。这还能与OS X中基本的文字导航快捷键结合。比如说,按下⌃⇧→ (control+shift+方向键)就可以选择到下一个驼峰的文字。或者是⌃delete(control+删除键)来删除到前一个驼峰。

 

注意,你可能要禁用OS X中在空格间移动光标的默认快捷键,因为它也是⌃→ 和 ⌃←。你可以在系统偏好设置 → 键盘 → 快捷键 → Mission Control中设置,取消勾选向左移动一个 space向右移动一个 space

 

不过遗憾的是,Xcode的输入框(比如搜索框)并不支持在驼峰间移动光标,OS X系统也不支持。

2、Balance Delimiter

Xcode的这个命令是在Editor → Structure → Balance Delimiter。它会根据当前的选择,自动选择下一个最外层的括号里的内容。这和“在括号里双击会选中括号本身和括号里的内容”有些类似。下图展示了这两种情形。


你可以在 Xcode Preferences → Key Bindings中给Balance Delimiter设置一个快捷键,我用的是⌘⇧Space(command+shift+空格)。

给Xcode加点料——导航

Xcode有很多命令和快捷键来支持不同类型的导航。你可以花一些时间看看ViewFindNavigate菜单下面有哪些能用的。试试单独按住 ⇧(shift), ⌥(option), 和一起按住 ⇧⌥来查看隐藏的命令。

要花几篇文章才能把全部导航快捷键讲完,所以下面总结了一些我最喜欢的。

3、在Project Navigator中显示:⌘⇧J(command+shift+J)

这个快捷键会打开左边栏,显示Project Navigator,并选中你正在编辑的文件。可以很便捷的查看当前文件在工程中的位置,以及相关文件。

4、显示文档:⌥ CLICK(按住option单击)

按住option,点击任何方法都会弹出一个框显示该方法的文档。如果你用触控板的话,也可以三指点击方法。最棒的是,这个方法也支持你自己的/** documentation comments */(比如用VVDocumenter-Xcode创建的文档注释)。


5、打开文档:⌥ DOUBLE CLICK(按住option双击)

如果你想打开完整的文档浏览器查看,按住option双击该方法。这对Apple框架的方法很有用,比如说-[UIView isOpaque]方法,有一些详解在上面提到的弹框中是不显示的。

6、在另一个编辑器中打开:⌘⌥,(command+option+逗号)

当你在main editor中编辑某个文件时,这个快捷键会在assistant editor中打开该文件。当你在assistant editor中编辑时,快捷键会在main editor中打开同一个文件。当和其他快捷键结合时,在不同编辑器中打开文件就很方便。例如,你正在assistant editor中编辑一个文件,你想在assistant editor中打开一个新文件,这时候用这个快捷键就能很容易地把正在编辑的文件显示在main editor中。

7、跳转到定义处:⌘⌥⌃ CLICK(按住command+option+control单击)

和⌘⌥,一样,⌘⌥⌃ CLICK会在另一个编辑器中打开该文件。而与⌘⌥,不同的是,它打开的是你单击的符号的定义文件。

8、设置触控板来更好的导航

OS X触控板手势已经公布很长一段时间了。最开始是用三指轻扫来导航:向左扫前进,向右扫后退。后来变成了两指向相反方向拖拽。这和在OS X Lion中引入的“自然”滚动方向配合的很好,但如果你想在文件中快速跳转,那这个滑动的动画就有些烦人了。

 

幸运的是,只要调整一下触控板的设置,你就能同时使用两指拖拽和三指轻扫了。注意一下这两个手势的方向是相反的。只要你记住的话就不是问题了。打开系统偏好设置 → 触控板 → 更多手势,改动如下:

  • 在页面之间轻扫:用两个或三个手指轻扫。选择用三个手指轻扫。
  • 在全屏幕显示的应用程序之前轻扫:用四个手指左右轻扫。
  • 把Mission Control 和 应用程序 Exposé的手势改为用四个手指(如果不用的话可以关闭)。这能让你在Xcode中通过四个手指上下轻扫来在一个类的.h和.m文件间切换。相同功能的快捷键是⌃⌘↑ 和 ⌃⌘↓(control+command+上/下)。(对于一般只有.h和.m的类来说,按上和下的效果是一样的,但如果有.h和.m以及_Private.h的话,快捷键是会在这3个文件中向前或向后循环。)

9、快速打开:⌘⇧O(commond+shift+字母O)

在Xcode中的任何位置,按下⌘⇧O(是字母O,不是数字0),都会弹出快速打开对话框。你可以输入任何文件或者符号的名字,Xcode会模糊匹配工程中的所有文件,以及Apple所有的公开头文件。它会在文件名、方法、函数、属性和常量之间搜索。模糊是指你的输入只要顺序正确,可以漏掉一些字母。

 

在下面的例子中,我要寻找的文件叫INVEditCreditCardsButtonView.xib。我记不起文件的全名了,但是我知道文件名和编辑银行卡(edit card)有关系,而且还有可能是一个button,所以我在快速打开中输入“editcaedbutton”,最上面的几个结果中就有我想要的。


提醒一下,我想要的是xib文件。我可以按方向键下两次或者用鼠标双击第三个结果,但其实还有更简单的方法。因为文件扩展名也在搜索范围内,所以只需要再多输入一个“x”就可以高亮正确的文件,然后按Return就可以打开。


给Xcode加点料——技巧

下面是一些能让你在Xcode中工作更有效率的技巧。

10、移动程序计数器(program counter )

当你在断点暂停时,在左侧显示行数的边栏旁边有一个绿色的小箭头,它表示程序计数器,指向将要执行的代码。很炫酷的是,你可以在程序中的其他地方单击或者拖拽程序计数器。当你想跳过几行代码并且不执行这些代码的时候,这就很有用了。你还可以返回再把某行代码重新执行一次。当然这样也很容易导致程序崩溃,不过如果你足够仔细的话,这能节省很多编辑和重新编译的时间。

 

(译注:视频里说了句“永远别这么干”……)


11、在Assistant Editor 中预览

如果你在iOS 8+的app中使用了trait collection,你的xib和storyboard中可能显示的都是600 x 600 pt的方形,这样看出来它们在不同的屏幕大小上到底是什么样子的。幸运的是,可以在Assistant Editor 中预览。


打开Assistant Editor(⌘⌥↩)。在Jump Bar上选择Preview。


这会根据指定的设备来显示界面的预览。你可以点击底部的+按钮来添加其他屏幕大小,从而测试在不同宽高比屏幕上的布局。

12、可搜索菜单

在Mac上,你可以打开一个弹出菜单,输入某个项目的前几个字母来跳转到该项目。你可能在网络表单中查找自己的状态或者出生年时这么用过。但是Xcode的菜单做得更好。Xcode中的大部分菜单都是可以搜索的。打开菜单,开始输入,就会显示出一个搜索框,并根据你输入的字母过滤菜单。最棒的是这个可搜索菜单也是模糊搜索,和快速打开对话框一样。


最常用的就是Show Document 菜单了,你可以按⌃6打开。这个菜单显示在Jump Bar,会列出当前文件所有的类、属性和方法。同时也会显示使用#pragma mark - Section Name手动添加的分割线和节标记。


开始输入,就能快速过滤出你想要的项。


13、Alcatraz 

Alcatraz 是一个Xcode包管理器。你能在其中浏览并轻松安装插件、模板和配色方案。我在讨论中提到了Alcatraz ,但是在这我更愿意说说我最喜欢的Xcode插件。

 

DerivedData Exterminator

有时候我们会遇到DerivedData导致的工程编译出错,即使Clean Project也问题依旧。删除DerivedData后,问题就解决了。这个插件就可以快速删除DerivedData。插件在Xcode 工具栏上添加了一个按钮,单击一下就可以了。(译注:原文这里说了一些没什么用的内容,翻译出来也没什么意义,不如说说这个插件的用途。As your project grows, Xcode seems to lose its ability to keep track of all the files and sub-projects that make up your app, and various build products seem to get stale and need to be blown away. This plugin puts a button in the Xcode toolbar that makes it a snap.)

FuzzyAutocomplete

这个插件给Xcode的CodeSense自动补全系统添加了模糊匹配,类似你在快速打开和可搜索菜单中用到的。这在Object-C的代码中很有用,尤其是那些很长并且类似,只在末尾稍有不同的代码。有了FuzzyAutocomplete,如果你想输入类似UIViewAutoresizingFlexibleTopMargin的,现在你只需要输入flextop,FuzzyAutocomplete会处理其余的事情。我给Apple提了一个建议,希望能把这个功能整合进Xcode,本来就该如此,不是么?

GitDiff 

Xcode的文件对比在查看哪些行有Git状态时很方便,同时也很笨重(占了半个屏幕)。GitDiff 提供了一个轻量级的选择:在显示行数和断点的边栏上显示一些小的彩色标签。当在使用时,它能清楚而又不突兀地提醒我哪些行已经编辑过了,帮助我跟踪当前正在做的事情。

SCXcodeSwitchExpander

输入switch语句,这个插件会根据枚举中定义的值,自动写出所有case。又是一个应该集成进Xcode中的功能。

VVDocumenter-Xcode

在任何方法或者属性前输入///,这个插件会把它转为格式化好的文档注释,包括参数和返回值的占位信息。最棒的是,这些注释也能在上面提到的⌥ Click(option 单击)弹出文档中工作。

XVim

Xcode中的Vim快捷键和编辑模式。如果你喜欢自讨苦吃的话,这个插件就很有用。(你能说我不是一个Vim的用户么?当然如果你已经知道这些快捷键,那这个插件那就相当强大啦)

你最喜欢的是什么?

我希望这篇提示与技巧能帮到你。Xcode还有很多更深更广的功能等待发现,而不仅仅只是我提到这一小部分。你最喜欢的提示和技巧是什么呢?可以在下面的评论中发表出来哦。

你可能感兴趣的:(给Xcode加点料)