去掉xcode源码末尾的空格【转载的这篇还没有具体操作过,希望对大家有用】

2023-11-05

去掉xcode源码末尾的空格

Dec 10th, 2011

在用xcode开发的时候,很容易就在行末增加一些空格了。这些空格在上传到review board上后,就会被特别的颜色显示出来。因为一种好的编程风格是说,不应该在行末增加不必要的空格。如果是用eclipse写java,那么这种时候选中写好的代码,按ctrl+shift+F即可调整源码的风格,将尾部的空格去掉。可惜在xcode中并没有提供相应的功能。

不过我们可以用命令行来达到这一效果,在工程目录下输入:

1
find . -name "*.[hm]" | xargs sed -Ee 's/ +$//g' -i ""

这样,就可以把源码中行末多出来的空格去掉了,是不是很爽? 可以把这句加到执行post-review的脚本上,这样就可以做到自动去空格了。

顺便说一下,我打算把这些小脚本工具总结出来,放到github上,地址是 https://github.com/tangqiaoboy/xcode_tool,感兴趣的同学可以把它clone下来。

祝玩得开心~

2013年6月22日更新

上文写于2011年末,在2012年在WWDC大会上,苹果推出了XCode4。从XCode4开始,XCode会自动去掉源码末尾的空格。所以上面提到的脚本基本没用了。不过对于工程中的html或js文件,XCode的去末尾空格功能并没有打开,所以在某些时候才能有一些小用处。

另外,每次记得敲命令来去掉空格是一件很恶心的事情,最好是由程序自动完成。考虑到现在git已经很普及了,在这里介绍另一种在git仓库中创建钩子(hook)的方法来去掉所有提交文件的末尾空格,具体做法如下:

在工程目录的 .git/hooks/目录下,创建一个名为 pre-commit的文件,输入如下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/sh
if git-rev-parse --verify HEAD >/dev/null 2>&1 ; then
   against=HEAD
else
   # Initial commit: diff against an empty tree object
   against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
fi
# Find files with trailing whitespace
for FILE in `exec git diff-index --check --cached $against -- | sed '/^[+-]/d' | sed -E 's/:[0-9]+:.*//' | uniq` ; do
    # Fix them!
    sed -i '' -E 's/[[:space:]]*$//' "$FILE"
    git add "$FILE"
done

然后用 chmod +x pre-commit 给该文件加上执行权限。这样,每次在git提交文件的时候,该脚本就会被自动执行并且将提交文件末尾的空格去掉。

Posted by 唐巧 Dec 10th, 2011 iOS, shell, xcode

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

去掉xcode源码末尾的空格【转载的这篇还没有具体操作过,希望对大家有用】 的相关文章

  • setter方法的内部实现【不要在init和dealloc函数中使用accessor】

    Objective C 2 0 增加了dot syntax 用于简单地调用成员变量的accessor 相当于java的getter和setter 因为正常情况下 写一个accessor对于初学者来说 还是挺容易犯错的 比如有一个NSStri
  • DevOps面试问题

    DevOps是一组过程 方法与系统的统称 用于促进开发 应用程序 软件工程 技术运营和质量保障 QA 部门之间的沟通 协作与整合 下面为大家分享DevOps系列的面试问题 持续整合问题 问题一 持续集成是什么意思 我将建议您通过给出持续集成
  • 高并发情况下修改系统参数

    单进程最大打开文件数限制 一般的发行版 限制单进程最大可以打开1024个文件 这是远远不能满足高并发需求的 调整过程如下 在 号提示符下敲入 ulimit n 65535 限制修改失败了 会显示 Operationnotpermitted
  • LaTex中把下标置于文本正下方的方法 (转载)

    转载一篇文章 因为我想打出 H z H 0 J m
  • 如何管理一个超过100人的研发团队?

    如何管理一个超过100人的研发团队 心得与体会 与大家共勉 1 无规矩不成方圆 因时因地制定合适灵活的策略和制度管理好团队和项目 2 欲善其事 必先利其器 是用合适的工具辅助团队和项目管理 2 不积硅步 无以至千里 鼓励技术 经验传承与分享
  • sql注入之万能密码总结

    万能密码 万能密码原理 原验证登陆语句 SELECT FROM admin WHERE Username username AND Password md5 password 输入 1 or 1 1 or 1 1万能密码语句变为 SELEC
  • 【转载】Java中将InputStream读取为String, 各种方法的性能对比

    Java中将InputStream读取为String 各种方法的性能对比 原文地址 http www cnblogs com milton p 6366916 html 如下 一共存在11种实现方式及其对应的性能测试结果 1 使用IOUti
  • iOS 自动构建命令——xcodebuild

    想想当初天天来到公司 每天需要做一件事就是打开Xcode打包ipa 上传到fir 日复一日月复一月年复一年的做着同样的事情 作为有志成为优秀工程师的我来说 这是必须要解决的问题 所以决定自动化解决问题 简介 xcodebuild 是苹果发布
  • 从30岁到35岁:为你的生命多积累一些厚度

    你所有不曾料想过的问题 都会随着时间的推移而与你不期而遇 你所有曾经潇洒的随遇而安 同样也会随时间流逝而让你承担那些似乎命中已经注定的代价 在这 个世界上 唯一不可阻挡的是时间 它像一把利刃 无声地切开了坚硬和柔软的一切 恒定地向前推进着
  • ios-消息中心 NSNotificationCenter 的介绍

    1 通知中心概述 通知中心实际上是在程序内部提供了消息广播的一种机制 通知中心不能在进程间进行通信 实际上就是一个二传手 把接收到的消息 根据内部的一个消息转发表 来将消息转发给需要的对象 通知中心是基于观察者模式的 它允许注册 删除观察者
  • SMB、FTP、DNS、等六个服务总结

    一 SMB服务 1 SMB服务功能 不同系统主机之间实现文件 打印机等资源共享 2 SMB服务主配置文件路径 etc samba smb conf 3 SMB服务启动 重启 停止 方法 service smb start restart s
  • jumpserver堡垒机 (资源)

    23 5 jumpserver介绍 官网www jumpserver org 跳板机概述 跳板机就是一台服务器 开发戒运维人员在维护过程中首先要统一登录到这台服务器 然后再登录到目标 设备迚行维护和操作 堡垒机概述 堡垒机 即在一个特定的网
  • 解密蓝牙mesh系列

    转载自 蓝牙技术联盟 蓝牙mesh网络基本概念 本周跟大家分享解密蓝牙mesh系列第四篇 点这里查看第一篇 第二篇和第三篇文章 同时也是蓝牙mesh网络基本概念的第二部分 借助蓝牙mesh 您将能够创建大型网络并支持成千上万的设备之间进行安
  • kaggle冠军代码汇总

    https www cnblogs com rw rongwei p 6509146 html
  • T0、T1、TS、D1是什么鬼?一文看懂POS机刷卡到账模式区别和利弊

    经常被一些刚刚接触POS机的朋友问到一个 什么是T0 什么是T1 今天小敏子就和大家来探讨一下几种刷卡到账模式区别和利弊 一 先说一下定义 什么是T T为英文Trade交易的首字母 什么是D D为英文Day 天 的首字母 什么是S S为英文
  • 完整、详细的MySQL规范

    一份非常完整 详细的MySQL规范 https mp weixin qq com s eCOn8JOPqExM6XOdv16krg 一 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保
  • char码值对应列表大全

    char码值对应列表大全 Char 0 为0的字符 Char 1 Char 2 Char 3 Char 4 Char 5 Char 6 Char 7 响铃 Char 8 回格 Char 9 tab 水平制表符 Char 10 换行 Char
  • 【转载】探索推荐引擎内部的秘密

    原网址 https www ibm com developerworks cn web 1103 zhaoct recommstudy1 index html icomments 这是2011年ibm发布的文章 较为通俗易懂 适合想入门推荐
  • 如何判断Linux服务器是否被入侵?

    1 如何判断自己的服务器是否被入侵 背景 随着开源产品的越来越盛行 作为一个Linux运维工程师 能够清晰地鉴别异常机器是否已经被入侵了显得至关重要 个人结合自己的工作经历 整理了几种常见的机器被黑情况仅供参考 以下情况是在CentOS 6
  • 数学界的扫地僧们(转)

    转载连接 http www newsmth net nForum article WorkLife 752660 前两天跟一个老同学聊近年来数学上的重大发现 结果作为科普人的我说着说着就发现 数学史原来就是一部八卦史 这个圈子奇葩辈出 怪事

随机推荐

  • idea中生成方法注释

    Description TODO Author YourName Date DATE 如果想在IDEA中生成类似上述的注释 那么可以先输入 再单击Enter键即可
  • jeeplus mysql_2.jeeplus源码-项目部署文档.docx

    项目部署文档官方网址 作者 lgf更新日期 2016 5 9开发工具 eclipse myeclipse mysql oracle tomcat6 7 8 打开eclipse右键 gt Import gt 选择如图 gt 选择工程 fini
  • c++vector查找元素所在的索引下标

    find函数 include
  • Java中的多线程(创建方式、安全问题、同步、死锁)

    学习笔记 多线程 简述 进程 正在进行中的程序 直译 线程 就是进程中一个负责程序执行的控制单元 执行路径 一个进程中可以有多个执行路径 称之为多线程 一个进程中至少要有一个线程 开启多个线程是为了同时运行多部分代码 每一个线程都有自己运行
  • python模块导入与模块包导入

    一 import 如何工作 main py程序第一次导入指定文件mod py时 执行 找到模块文件mod py 编译成字节码 可选 执行 pyc字节码 创建mod py中定义的对象 导入模块后 模块对象会被存储在sys modules的表中
  • 使用yum info查看软件包信息与常用软件包

    记录 357 场景 在CentOS 7 9操作系统上 使用yum info查看软件包信息 包括软件包名称 适用架构 版本号 发行版 软件大小 仓库名称 概要 URL 许可证 描述 版本 操作系统 CentOS 7 9 1 iptables包
  • CSS的居中

    CSS vertical align 垂直居中 用于设置图片或表单 行内块元素 和文字垂直对齐 行内或行内块元素有效 属性 baseline 默认 元素放置在父元素基线上 top 把元素的顶端与行中最高元素顶端对齐 middle 把此元素放
  • C# -Unity中 params的用法

    1 形式为 方法修饰符 返回类型 方法名 params 类型 变量名 2 不允许将params修饰符与ref和out修饰符组合起来使用 3 与参数数组对应的实参可以是同一类型的数组名 也可以是任意多个与该数组的元素属于同一类型的变量 4 若
  • 2014年6月30日-7月6日(10小时,剩4414小时)

    6月30日 4小时 剩4420小时 上午2小时OSGEARTH源码 下午 DX11书2小时 7月1日 3小时 7月2日 1小时 7月3日 1小时 7月4日 1小时 剩4414小时
  • NoSQL数据库简介

    假如必须支持数量极为庞大的Web用户 而不是像原来那样只需要支持一小部分商户 开发者要求数据库必须能够提供下列几个方面的支持 对大批量读写操作的处理能力 较低的延迟时间和较短的响应时间 较高的数据可用性 关系型数据库很难满足上述需求 对于大
  • dwr反转ajax功能,DWR Reverse Ajax功能实践的要点

    packagecom hhh nms remote importorg apache log4j Logger importjavax servlet ServletContext importorg springframework web
  • https://code.google.com/p/baiduhook/

    https code google com p baiduhook
  • 宝妈怎样边带娃边赚钱?

    越来越多的人开始做自媒体 在家用手机就能做 比较适合那些空闲较多的学生 宝妈 待业的一些小伙伴们 昨天一天发布看书视频收益400多 操作方法并不难 今天这期内容就来把方法分享给粉丝们 如何操作 点个赞继续看 1 文案 1 在平时看的书 报纸
  • PTA1040 有几个PAT

    PTA 1040 有几个PAT 字符串 APPAPT 中包含了两个单词 PAT 其中第一个 PAT 是第 2 位 第 4 位 A 第 6 位 T 第二个 PAT 是第 3 位 第 4 位 A 第 6 位 T 现给定字符串 问一共可以形成多少
  • 机器学习与深度学习入门环境安装

    机器学习与深度学习入门环境安装 1 编程语言 2 开发平台 3 机器学习工具包 4 深度学习框架 1 编程语言 Python 胶水语言 集成度高 简单实用 受众面广 开发者社区和资源丰富 功能强大 十分适合新手入门与科研工作者使用 但运行速
  • C++如何判断变量类型

    C 如何判断变量类型 使用 typeid 判断其类型 需要在编译语言选项中选择 RTTI 编译选项 例子 引用自这里 详情可以看这里 include
  • SyntaxError: Unexpected token o in JSON at position 1

    用JSON parse value 将string对象转换成object对象出错 报错原因 重复转换 由value本身就是object对象引发的 因为value本身就是object对象 此时再使用JSON parse value 方法后返回
  • 亚马逊+纽约大学开源图神经网络框架DGL

    最近 纽约大学 纽约大学上海分校 AWS上海研究院以及AWS MXNet Science Team共同开源了一个面向图神经网络及图机器学习的全新框架 命名为Deep Graph Library DGL 据介绍 这个框架在测试时表现出了良好的
  • cenetOS 系统开机启动服务脚本

    在centos7中增加脚本有两种常用的方法 以脚本autostart sh为例 bin bash description 开机自启脚本 usr local tomcat bin startup sh 启动tomcat 方法一 1 赋予脚本可
  • 去掉xcode源码末尾的空格【转载的这篇还没有具体操作过,希望对大家有用】

    去掉xcode源码末尾的空格 Dec 10th 2011 在用xcode开发的时候 很容易就在行末增加一些空格了 这些空格在上传到review board上后 就会被特别的颜色显示出来 因为一种好的编程风格是说 不应该在行末增加不必要的空格