Xcode开发效率-快捷键&代码块

前言

程序员使用最多的还是键盘,我们可以通过快捷键的使用来方便的、快捷的访问Xcode很多功能。从而提高开发效率。

Keys

  • Shift + Command + O(字母O,而非0)弹出快速查找文件窗口。
  • Shift +Commond + 0(数字0,而非字母O)快速打开官方文档。
  • Shift + Comand + j 定位到文件所在目录,配合第一条快捷键使用。
  • Control + Command + 上\下 切换 .m 和.h。
  • Command + t 新建一个Tab(这个很实用,我平时一般都会建3,4个Tab)。
  • Command + w 关闭Tab。
  • Command + ` 切换同一个应用多个窗口。可以用来在多个Xcode窗口中切换。
  • Control + Command + e 可以批量修改光标所在位置的变量,像这样:

  • Shift + Command + f 打开全局搜索。(可以加个 Any 正则,就可以搜出如图中的这种)

  • Command + f 在类中搜索 (enter 匹配下一个 Shift + enter 匹配上一个)。
  • Command + 上\下\左\右 光标切换到类首/类尾/行首/行尾。
  • Shift + Command + 上\下\左\右 从当前光标所在选中到类首/类尾/行首/行尾的文本。
  • alt + 左\右 光标左右移动一个单词。
  • Command + delete 删除光标到行首的内容,同理alt + delete 删除光标前的一个单词,另外可以先切换到到行尾 用Command + delete删除一整行内容。
  • Control + i 自动缩进代码。
  • Command + \ 当前行加断点。
  • alt + Command + \,新建一个symbolic breakpoint。
  • Command + n新建文件 ,Shift + Command + n 新建工程。
  • alt + Command + 左\右 折叠\显示当前块。
  • Shift + alt + Command + 左\右 折叠\显示当前文件中的块。
  • alt + Command + [ 上移,如果没有选中,默认上移当前行,alt + Command + ] 下移。
  • Command + ] 向右缩进,支持多行,Command + [ 向左缩进。(类似Tab与shift+tab)。
  • Shift + Command + k product 清理;Command + r Run;Command + b 编译。

Xcode窗口控制

  • Shift + Command + Y 隐藏\显示 console 区。
  • Shift + Command + C 显示 console 区,且直接聚焦。
  • Command + k console清屏。
  • Control + 1 (没用过>,<)。

  • Control + 6 查看当前类的方法列表(可以用 pragma mark 来合理分块,查看更直观)。
  • Command + (1~9)切换左边窗体.Command + 0 显示 \ 隐藏左边窗体。
  • alt + Command + 0 显示 \ 隐藏右边窗体,同理alt + Command + 1,2等也可以切换。
  • Command + , 弹出 Perferences ,可以用 Command + w 隐藏。
  • Command + +(加号)/-(减号),放大/缩小整体页面。与Web端一致。

Code Snippet

选中编写好的代码块,右击选择 Create Code Snippet

参数说明:
  • Title: Code Snippet的名字,将作为主标题显示在列表中。
  • Summary: 说明,将作为副标题显示在列表中。
  • Platform: 平台,有All,iOS,watchOS,macOS和tvOS五个选项。
  • Language: 语言,有Objective-C,Swift等选项。
  • Completion Shortcut: 快捷键。
  • Completion Scopes: 匹配范围,比如说OC中一个类的代码块不该在另一个类中匹配出来,这样可以更加精确地匹配,这个选项可以多选。
  • 代码: 这就不用多说,直接在代码模块修改,但是这里相当于纯文本,建议验证后再保存。

Command + shift + L 打开所有代码块。

1
Tips: 代码段中可以使用<#placeHolder#>用于占位

补充Code Snippet示例

1
2
//property
@property (nonatomic, readwrite, strong) <#expression#> *<#expression#>;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//UICollectionView 
#pragma mark - UICollectionViewDataSource
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
return <#number#>;
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return <#number#>;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{

UICollectionViewCell *cell = (UICollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"" forIndexPath:indexPath];
return cell;
}

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
return CGSizeMake(<#number#>, <#number#>);
}

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
return UIEdgeInsetsMake(<#number#>, <#number#>, <#number#>, <#number#>);
}

#pragma mark - UICollectionViewDelegate
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//attributeLabel
UILabel *attributedLabel =[[UILabel alloc] init];
attributedLabel.numberOfLines = 0;
attributedLabel.preferredMaxLayoutWidth = <#preferredMaxLayoutWidth#>;
attributedLabel.backgroundColor = [UIColor clearColor];
NSString *text = <#text#>;
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
style.lineSpacing = <#lineSpacing#>;
NSDictionary *attr = @{
NSFontAttributeName: [UIFont <#font#>],
NSParagraphStyleAttributeName: style,
NSForegroundColorAttributeName: [UIColor <#color#>]
};
attributedLabel.attributedText = [[NSAttributedString alloc] initWithString:text attributes:attr];
[<#view#> addSubview:attributedLabel];

Xcode插件

略(待补充)

Simlulater

略(待补充)