修剪Xcode中的尾随空格

当我保存文件时,是否有强制Xcode修剪尾随空白的方法?

如果有问题,我正在使用3.1.3版本。

您可以创build脚本并将其绑定到键盘快捷方式:

  • select脚本菜单>编辑用户脚本…
  • 按下+button并selectNew Shell Script
  • 给它一个像“Strip Trailing Spaces”这样的名字,并给它一个像^^ R这样的快捷方式。
  • 将input设置为“select”并输出到“replaceselect”

然后input以下脚本:

#!/usr/bin/perl while (<>) { s/\s+$//; print "$_\n"; } 

从Xcode 4.4开始,默认情况下会自动修剪空格,除非行全是空格。 您也可以激活Including whitespace-only lines来解决这个问题,默认情况下它是不活跃的。

转到Xcode > Preferences > Text Editing > While editing

Xcode首选项截图

我正在使用Google工具箱For Mac Xcode插件 ,它在保存时添加了“正确的保存空白”参数,用于修剪尾随的空格。 我错过了很多来自emacs。

这在Xcode 3.2中是不可能的

编辑:

我简短地回答了这个问题,因为没有办法做到这一点。

当然,由于它是软件,所以你可以做任何事情:从inputpipe理器入手或其他注入代码到系统范围的键盘拦截,你可以改变你的本地系统在任何时候做任何事情。 您可以设置一个Applescript文件夹操作(arrgh)或使用启动守护程序和FSEvents设施来观看您的源代码文件。

您还可以在Xcode中添加一些脚本(菜单中的用户脚本,目标中的脚本阶段,组织者中的自定义操作,甚至还有启动脚本的未知可能性),但所有这些解决scheme都是有缺陷的,因为它涉及用户或用户的机器上的自定义设置。

我没有意识到一个解决scheme,只是从SCM签出项目后工作。 我相信需要这个和类似的定制脚本,所以我提交了一个bug(雷达7203835,“function:Xcode工作stream程中更多的用户脚本触发器”)。 我还没有收到任何反馈。

以下是雷达条目的全文:

有更多的地方在Xcode中运行脚本将是有用的。

例子:

  1. 预先构build脚本
    预编译脚本可以用来构build先决条件,如* .xcconfig文件或config.h头文件。 在“运行脚本构build阶段”中这是不可能的,因为依赖关系跟踪在任何构build阶段被触发之前发生。

  2. 发布构build脚本
    与上面类似,但在构build完成后运行(包括代码签名等)。 有用的额外的包装,有效性检查等

  3. Pre / Post SCM提交脚本。
    检查项目完整性。

  4. 前/后文件保存脚本。
    在保存之前检查/更改文件。 如运行科迪美女

  5. 自定义项目操作。
    我知道组织者定义任意动作的能力。 但这是每个用户function(不是项目的一部分)。 我想定义构build菜单中显示的构build或清理等操作,这些操作是项目的一部分。

在这里查看Xcode4: http : //www.wezm.net/technical/2011/08/strip-trailing-whitespace-xcode-4/

酷,谷歌的Mac工具箱现在为Xcode4增加了一个“修剪空白”选项。

http://code.google.com/p/google-toolbox-for-mac/downloads/list

谢谢你,Google!

对于Xcode 8,我安装了swimat Xcode插件,用于格式化Swift代码,它删除了所有尾随空格和仅空白行。

安装方法

  1. 通过homebrew-cask安装:

     brew cask install swimat 
  2. 直接下载应用程序:
    https://github.com/Jintin/Swimat/releases/download/v1.3.5/Swimat.zip

  3. 克隆extension分支并存档到Mac App。

用法

一旦安装,你可以通过Editor -> Swimat -> Format在Xcode中运行Swimat。