修剪Xcode中的尾随空格

gorkyyrv  于 2023-01-27  发布在  其他
关注(0)|答案(9)|浏览(154)

有没有办法在保存文件时强制Xcode删除尾随空格?
如果有必要的话,我使用的是3.1.3版本。

cotxawn7

cotxawn71#

从Xcode 4.4开始,默认情况下空格会被自动删除,除非该行全是空格。你也可以激活Including whitespace-only lines来修复这个问题,默认情况下它是不激活的。
转到Xcode > Preferences > Text Editing > While editing

fhity93d

fhity93d2#

我使用的是Google Toolbox For Mac Xcode Plugin,它添加了一个“保存时修正空格”参数,可以在保存时删除尾随空格。

8e2ybdfx

8e2ybdfx3#

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

  • 选择 * 脚本菜单〉编辑用户脚本 *
  • 按+按钮并选择 * 新建Shell脚本 *
  • 给它取一个类似“Strip Trailing Spaces”的名字,并给它一个类似R的快捷键。
  • 将输入设置为“选择”并将输出设置为“替换选择”

然后输入以下脚本:

#!/usr/bin/perl

while (<>) {
    s/\s+$//;
    print "$_\n";
}
efzxgjgh

efzxgjgh4#

我发现使用@MartinStolz建议的新Automatically trim trailing whitespace -> Including whitespace-only lines在编辑时效果很好,但我有时需要执行Cmd + a -〉Ctrl + i,并在不编辑时多次保存文件。
如果你想不使用脚本清理整个项目(不包括.md文件),你也可以使用Find & Replace -> Regular Expression。由于这种技术也会删除文档/注解的尾随空格和制表符,你也可以尝试对黑名单中的字符进行负前瞻,以过滤掉单行注解。

查找所有尾随空格:

[\t ]+$

在不接触单行注解的情况下查找尾随空格:

^(?!.*\\\\)[\t ]+$

替换:

<nothing>

因此,在没有swiftlint autocorrect或类似的第三方解决方案的情况下也可以进行掉毛。

gv8xihay

gv8xihay5#

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

安装方法

1.通过自制啤酒桶安装:

brew cask install swimat

1.直接下载应用程序:
https://github.com/Jintin/Swimat/releases/download/v1.3.5/Swimat.zip
1.克隆extension分支并存档到Mac App。

用法

安装后,您可以通过Editor -> Swimat -> Format在Xcode中运行Swimat。

4ktjp1zp

4ktjp1zp6#

这在Xcode 3.2中是不可能的

  • 编辑:*

我回答这个问题如此简短,因为没有办法做到这一点 * 正确 *。
当然,因为它是软件,所以你可以做任何事情:从输入管理器黑客或其他方式的代码注入到系统范围的键盘拦截开始,你可以随时改变你的本地系统来做任何事情。你可以设置一个Applescript文件夹操作(arrgh)或使用一个启动守护程序和FSEvents工具来监视你的源代码文件。
您还可以向Xcode添加几个脚本(菜单中的用户脚本、目标中的脚本阶段、组织器中的自定义操作,甚至还有未知的启动脚本),但所有这些解决方案都有缺陷,因为它涉及用户或用户机器上的自定义设置。
我不知道有哪个解决方案可以在从SCM checkout 项目后简单地工作。我认为需要这个和类似的定制脚本,所以我提交了一个bug(radar 7203835,"Feature:Xcode工作流中有更多用户脚本触发器")。我还没有收到任何反馈。
以下是雷达词条全文:
在Xcode中有更多的地方运行脚本会很有用。
示例:
1.预构建脚本
预生成脚本可用于生成系统必备项,如 *. xcconfig文件或config. h标头。这对于"运行脚本生成阶段"是不可能的,因为依赖项跟踪在触发任何生成阶段之前发生。
1.生成后脚本
与上面类似,但在构建完成后运行(包括代码签名等)。用于额外的打包,有效性检查等。

  1. SCM提交前/后脚本。
    检查项目完整性。
    1.前/后文件保存脚本。
    保存前检查/修改文件。例如运行cody beautifiers
    1.自定义项目操作。
    我知道组织者可以定义任意操作。但这是针对每个用户的功能(不是项目的一部分)。我想定义像构建或清理这样的操作,这些操作显示在构建菜单中,并且是项目的一部分。
8zzbczxx

8zzbczxx7#

Xcode 4请参见此处:http://www.wezm.net/technical/2011/08/strip-trailing-whitespace-xcode-4/
酷,谷歌工具箱为Mac现在增加了一个“修剪空白”选项的Xcode 4。
http://code.google.com/p/google-toolbox-for-mac/downloads/list
谢谢你,谷歌!

inn6fuwd

inn6fuwd8#

最好的和简单的方法,而不使用脚本,黑客和更多。只要去Find And Replace和按下alt/option + space和按下space按钮在替换栏,然后点击全部替换。它会取代空白与正常的空格和警告/错误将消失!!

cld4siwp

cld4siwp9#

有一种方法虽然不完美,但很有效,那就是使用查找和替换。找到两个空格,然后用空替换。然后使用Command+A和Control+I。
正如我所说,不是完美的也许你需要修复一些东西,但对我来说工作。

相关问题