XCode x Swift x SwiftUI
学习 iOS 的开发有不少的门槛, 除了必须先有一台 Mac 电脑,还要熟悉 Swift 语法 与 iOS SDK。
好不容易入手了 Mac,第一个遇到的困难点,就是陌生的开发工具 XCode。
还好 不像学习「程序语言」,需要许多的「时间」与「耐心」,开发工具的使用是可以速成的。
而且 XCode 除了免费之外,还是 Apple 官方的开发工具,本身也是个具有特色且功能强大的软件 !
这次的教程直接看影片会比较快了解功能作用,
此篇文章除了必要的说明外,只会简单列表影片中出现的快捷键,以供後续遗忘时可以快速回顾。
这次的 XCode 开发指南,起源於我在 XCode 安装 Vim 的插件 「 XVim2 」
https://github.com/XVimProject/XVim2
安装时,必要的「证书签入」动作与 MacOS 最新版本的 Big Sur 安全机制冲突,导致发生开发者帐号无法登入,也无法安装到实体手机的状况发生。
https://github.com/XVimProject/XVim2/issues/340
不得已只能重新安装,并且在不熟悉工具的情况下,进行开发。
在寻找的过程中,我发现部分的 XCode 快捷键模式是属於 emacs 类型
例如:
最大限度熟悉 XCode 的功能与快捷键也成为选项之一。
集合网路上搜集到的各种 XCode 使用技巧与对映我使用 IntelliJ 与 Vim 的经验,整理从面板、导航一直到执行、除错与自定义快捷键的各项功能。
我认为熟悉这个工具的使用,对於开发者来说会是个合理且划算的投资
(Apple 系列产品 : macOS、iOS、iPadOS、WatchOS、tvOS)
macOS Big Sur 11.2 版本
XCode 12.4 版本
所以只会针对这个语法与框架的专案,介绍相关的功能与快捷键操作,
如果没有看到 Storyboard 的设计介面与 Object-C 语法的相关操作是正常的情况,这些部分这次就不会介绍。
(除错区右下方的两个图示按钮,可以决定哪一项的功能完整显示)
一次性的关闭当前所有的辅助功能
(右上角列表图示,开启的辅助功能都一并关闭)
补充 :
cmd + shift + J :
此快捷键要在有开启档案的情况下才能作用,
因为该功能其实是在导航列中聚焦当前档案,如果面板中没有档案的话只能用 cmd + 1。
编辑区块的左上角,四个方格的图示 :
此部分的快捷键功能 :
之前历史
之後历史
顶层的目录向下寻找
同层级目录
函式结构
个人觉得是个非常具有特色的功能
左侧列表选择档案後,不像其他编辑器只是单纯聚焦或者开启分页,而是会随着选择变换分页中的内容,
要滑鼠点击两次才会加入到分页上。
分页的名称上,有的文字是倾斜,有的文字是正常,倾斜文字就是会随着选择而变动的分页。
可以理解为:
这个是文档的快速预览功能,需要再多一个动作(点击两下)
才会真正加入到分页上。
分页操作
• control + ` : 聚焦回编辑区块
• cmd + shift + [ : 分页向左切换
• cmd + shift + ] : 分页向右切换
• cmd + w : 关闭当前分页
• cmd + opt + w : 关闭其他分页
(关闭全部分页 : cmd + shift + w 已经有其他功能使用,替代分案 : 组合使用 cmd + opt + w , cmd + w)
开启在辅助编辑器
• 滑鼠操作 : opt + 点击
• 键盘操作 : cmd + opt + ,
• cmd + opt + shift + , : 选择位置开启
按住 opt 後 Enter 开启 :
- cmd + shift + O : Open Quickly
- control + 1 : Related Items
- control + 2 : Previous Files History
- control + 3 : Next Files History
- control + 4 : Top Level Items
- control + 5 : Group Files
辅助编辑器操作
编辑区块切换 :
- control + ` : 编辑视窗顺序切换
- cmd + opt + ` : 功能区块顺序切换
- cmd + J : 选择编辑区块
聚焦於当前编辑区块 :
- cmd + control + shift + enter
(暂时隐藏原先的视窗状态并不会关闭,左上角的倾斜的双箭头图示显示状态)
关闭辅助编辑器 :
- cmd + control + shift + W
cmd + T : 开启视窗分页
这个分页拉出来也是一个独立的编辑器,可以这样理解:
这个分页就是另外一个独立的工作区,不会去共用侧边栏的导览 或者 近期档案的导航功能
视窗分页操作
视窗分页切换 :
- control + tab : 顺序切换
- control + shift + tab : 反向切换
重新命名视窗分页 :
- cmd + opt + shift + T
(可以一次性的使用 3 ~ 5 个分页搭配重新命名,可以更好的组织逻辑与思绪)
关闭视窗分页 :
- cmd + shift + W
文件项目 : 过滤器
关联项目 : Callers & Callees
特殊情况 01 : 版本控制的状态
点击右上角的双向箭头图示,会在当前画面中呈现版本比对的讯息 :
(版本比对要关闭,不然快捷键无法生效)
特殊情况 02 : 编译错误的状态
使用选取文字搜寻
以专案为范围
同样可以使用填入文字的快捷键 :
- cmd + E : 搜寻框
- cmd + shift + E : 替代框
排版补充
注解补充
目前查到 XCode 中,已知的 emacs 类型 :
• control + P : 向上
• control + N : 向下
• control + B : 向左
• control + F : 向右
• control + A : 到行首
• control + E : 到行尾
• control + L : 跳转到光标处
• control + D : 反向删除字元
• control + K : 删除到结尾文字
• control + T : 交换光标两侧文字
(之後若有发现更多的功能,会在此部分补充)
三种操作
01. 滑鼠操作
02. 键盘操作
03. 在范围中编辑全部
该功能仅适用於单一档案快速修改,若已经被外部参照,要使用 rename 才会连动修改
初始化方法补全
(光标要定位於类别名称)
方法补全
修正连续技
三种操作
Debug 模式的部份,我使用的机率没有很高,那为什麽要说明这两项功能 ?
因为我查到的资料中有些开发者,由於 XCode 没有书签功能,所以会使用这个中断点来替代使用
我个人是觉得如果能够熟练的使用「分页与视窗」功能,使用中断点来替代,看起来就没有那麽的必要。
按键「 cmd + , 」打开设置後 「 Key bindings 」
个人配置了6 + 1 的快捷键,来辅助开发。
6
页面上下移动
区块选取文字
重新命名
删除单行
+1
XCode 配置档路径
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
权限调整指令
sudo chmod 666 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
sudo chmod 777 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/
编辑配置档
vim /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
(也可以使用 open 指令,用 XCode 介面编辑,或者直接进入到档案目录用其他编辑器修改)
复制指令
selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:
修改後的配置内容
<key>EnoxsIDE</key>
<dict>
<key>Duplicate Line</key>
<string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string>
</dict>
重启後,设置
原本的预设中也有一个 Duplicate 的功能「cmd + D」
只是在编辑器中试不出来,所以只好把这个快捷键,移到新配置的 Duplicate Line
上述从基础面板、档案导航、分页视窗、代码导航、代码编辑、执行除错以及最後的自定义功能。
你应该已经知道 XCode 可以做的事情 远比想像中的多更多。
不过熟悉开发工具的使用是开发中**「可选」的条件,却并不是「必要」的条件**。
Side Project
在 XVim2 的插件发生问题以後,只知晓左右侧与下方面板开关以及注解、排版、执行,
这六个快捷键的情况下,就已经陆续的完成将近七至八成的内容。
要完整的开发一个 iOS App 熟悉工具的使用只能锦上添花,但并不能完全替代所有必备的知识。
这些就只能透过足够多的「时间」与「耐心」以及「正确的方法」(Gamma Ray 软件工作室) 逐步累积知识。
我相信,最终肯定可以到达 愉快写 Code 的程度 !
https://juejin.cn/post/6844903565614383118
https://www.jianshu.com/p/3d7cc7eaeb1e
https://medium.com/@stephyang/xcode-%E5%BF%AB%E6%8D%B7%E9%8D%B5%E6%95%B4%E7%90%86-ba653d0eff7e
https://www.notion.so/iOS-13-af1abc1bd9b440f5a67fdc1c70d529ab
https://www.appcoda.com.tw/xcode-shortcuts/
今天来跟大家介绍弱点扫描的基本操作 启动我们的Nessus後 请记得先到Settings确认目前的P...
What is Log in backend Log顾名思义就是纪录,通常在Backend当中会将可...
先前 Google 取消无限制文件云端空间与无限制相簿空间後,大家哀鸿遍野。而原本不受影响的 GSu...
今天要介绍的模式是属於结构型模式的一种,我个人觉得他还蛮简单的,有点像是程序码中的主要窗口,现在...
这次的功能主要是做画面的一个点击拖曳,当点击後往左拖曳画面会往右跑,反之。 主要之架构。 <...