有没有办法在我保存文件时强制 Xcode 修剪尾随空格?
如果这很重要,我正在使用版本 3.1.3。
我正在使用Google Toolbox For Mac Xcode Plugin,它添加了一个“保存时正确空格”参数,用于在保存时修剪尾随空格。我从emacs中错过了很多。
您可以创建一个脚本并将其绑定到键盘快捷键:
然后输入以下脚本:
#!/usr/bin/perl
while (<>) {
s/\s+$//;
print "$_\n";
}
我发现使用Automatically trim trailing whitespace -> Including whitespace-only lines
@MartinStolz 建议的新方法在编辑时效果很好,但有时我需要做Cmd+ a-> Ctrl+i并在我不编辑时多次保存文件,并且文件处于焦点位置。
如果您想在.md
不使用脚本的情况下清理整个项目(不包括文件),您也可以执行Find & Replace -> Regular Expression
. 由于此技术还删除了文档/注释的尾随空格和制表符,因此您还可以尝试对列入黑名单的字符进行否定前瞻以过滤掉单行注释。
[\t ]+$
^(?!.*\\\\)[\t ]+$
<nothing>
因此,linting 也可以在没有swiftlint autocorrect
或类似的第三方解决方案的情况下完成。
对于 Xcode 8,我安装了游泳Xcode 插件,用于格式化 Swift 代码,它删除了所有尾随空格和纯空格行。
通过自制桶安装:
brew cask install swimat
直接下载App:
https ://github.com/Jintin/Swimat/releases/download/v1.3.5/Swimat.zip
克隆extension
分支并存档到 Mac App。
安装后,您可以在 Xcode 中通过Editor -> Swimat -> Format
.
这在 Xcode 3.2 中是不可能的
编辑:
我这么简单地回答了这个问题,因为没有办法正确地做到这一点。
当然,由于它是软件,您可以做任何事情:从 Input Manager hacks 或其他代码注入方式到系统范围的键盘拦截,您可以随时更改本地系统以做任何事情。您可以设置 Applescript 文件夹操作 (arrgh) 或使用启动恶魔和 FSEvents 工具来查看源代码文件。
您还可以在 Xcode 中添加几个脚本(菜单中的用户脚本、目标中的脚本阶段、管理器中的自定义操作,甚至还有一个非常未知的启动脚本),但是所有这些解决方案都是有缺陷的,因为它涉及用户或用户机器上的自定义设置。
我不知道从 SCM 签出项目后可以简单地工作的解决方案。我相信需要这个和类似的自定义脚本,所以我提交了一个错误(雷达 7203835,“功能:Xcode 工作流程中的更多用户脚本触发器”)。我还没有收到任何反馈。
以下是雷达条目的全文:
在 Xcode 中拥有更多运行脚本的地方会很有用。
例子:
预构建脚本
预构建脚本可用于构建诸如 *.xcconfig 文件或 config.h 头文件之类的先决条件。这对于“运行脚本构建阶段”是不可能的,因为依赖跟踪发生在任何构建阶段被触发之前。构建后脚本
与上面类似,但在构建完成后运行(包括代码签名等)。用于附加包装、有效性检查等。前/后 SCM 提交脚本。
检查项目完整性。前/后文件保存脚本。
在保存之前检查/更改文件。例如运行 cody 美化器自定义项目操作。
我知道组织者定义任意行为的能力。但这是每个用户的功能(不是项目的一部分)。我想定义显示在构建菜单中并且是项目一部分的构建或清理等操作。
有关 Xcode4,请参见此处:http ://www.wezm.net/technical/2011/08/strip-trailing-whitespace-xcode-4/
很酷,Mac 版 Google 工具箱现在为 Xcode4 添加了“修剪空白”选项。
http://code.google.com/p/google-toolbox-for-mac/downloads/list
谢谢你,谷歌!
最好和最简单的方法,无需使用脚本、黑客等。只需转到Find And Replace
并按下alt/option + space
替换space
栏中的按钮,然后单击全部替换。它将用普通空格替换空格,警告/错误将消失!