2020年5月9日星期六

macOS 图片批处理工作流(第二弹)

macOS 图片批处理工作流(第二弹)

图片自动化处理是一个很大的话题,涉及的工具可以非常通用,比如套壳截图、体积压缩;也可以专精一个场景,例如制作圆角卡片,或者生成苹果官网风格的 Mockup 样机展示图。
事实上,大多数重复的图片处理操作都可以打包成自动化操作。我曾在《6 个小工具,打造图片批处理工作流》中分享过一些自用的图片自动化操作和思路,这次再介绍另一批:
  • Mac 套壳截图:给截图套上各种 MacBook、台式机或显示器的外壳。Mac 套壳截图
  • 多设备拼图:将各种设备的截图拼在一起,打造类似产品官网的展示效果。多设备拼图效果
  • 圆角卡片:制作带有圆角和阴影的卡片,让图片和背景区分开来的同时视觉效果也更加柔和。制作圆角卡片
  • 导出 Sketch 文件:无需打开 Sketch,快速、批量将设计源文件导出成普通图片,方便发给他人进行展示。导出 Sketch 画板
每个动作都尽可能提供了 Automator、Alfred 和 LaunchBar 等各个版本,在操作方式上尽量做到雨露均沾。不过众口也难调,动作默认的成品样式也许并不能恰好契合每一位读者的需求,所以我也会对动作的关键部分进行介绍,给想要自己改造的读者一些空间。

使用前的一点准备和注意

除了最后一个专用于 Sketch 的动作,其他动作都依靠 imagemagick 这一命令行工具。Imagemagick 被广泛用于图片处理,虽然乍看之下,作为一款「修图工具」却没有图形界面是令人难以想象的,但也正是命令行的简单灵活给了我们自定义空间,可以很方便地把 imagemagick 嵌入各种自动化工作流。
如果你还没有装过 imagemagick,推荐使用 HomeBrew 来安装它,方便日后升级维护和排查问题。
brew install imagemagick

平时和读者交流,经常有人提到动作在自己电脑上运行起来不太顺利。其实一个动作想要运行良好,需要系统、工具、动作和素材的配合,遇到某张图片无法处理时不要着急,试试通过这套方法来排查问题:
  1. 检查图片本身:换别的图片,看看是不是图本身有问题?一般图片格式、文件名空格、中文文件名这些我都已经考虑在内了,潜在问题往往在专业场景下,比如图片过大、采用 H.265 编码之类。
  2. 检查 imagemagick:通过 HomeBrew 升级或重装 imagemagick,看看是不是 imagemagick 及其组件版本的问题?作为一款开源工具,imagemagick 有很多依赖的组件,长期丢着不维护是有出错风险的。
  3. 检查自动化工具:工具本身因为权限、版本等问题也会导致运行失败,不少读者在升级到 Mojave 系统后,就出现 LaunchBar、Alfred 集体失灵的情况。大家在用的几款工具维护还是比较到位的,一般问题出来没多久,官方就会提供修复性的软件更新。
  4. 检查自动化动作:换其他同样基于 imagemagick 的动作,如果其他动作都跑得很顺,基本就是动作自己出错了,遇到这种情况欢迎即时联系我。

Mac 套壳截图

套壳截图也算是个老生常谈的话题,早几年还流行过用捷径来给手机截图套壳,很有软件官网上的展示效果,一时间蔚然成风,不过给电脑截图套壳的选择似乎不多。
给文章配图时我看着四角尖尖的 MacBook 截图实在难受,就做了一个套壳动作(并在 Power+ 1.0 中写过一篇《Mac 带壳截图》。后来我拓展了一下这一动作,让它支持不同 MacBook、iMac 和显示器的外壳,当然你也可以自己添加。
Mac 套壳截图
其中 Automator 版因为工具本身限制不能内嵌壳图素材,需要另外找地方存放,不是非常推荐。Alfred 和 LaunchBar 使用起来更加自然,选中图片后直接运行「Shell MacBook」动作,再视分辨率从弹窗中的壳图中进行选择:
  1. 在 MacBook 上直接截图时,可选择 MacBook 或 MacBook Pro
  2. 在 16:9 外接显示器上截图时,请选择台式 Mac 或外接显示器的素材
选择壳图生成带壳截图
考虑到 Mac 的截图分辨率往往很高,成批进行套壳电脑负荷有点重,不建议大批量操作。生成的截图会直接放在原图边上,原图不受影响。
除了我提供的几款壳图素材,大家也可以自己添加其他的外壳图片。首先在 Alfred 或 LaunchBar 设置中找到动作,点击「Show in Finder」移步动作源文件文件夹,把素材放进去(注意不要和原来的素材重名)。
LaunchBar 和 Alfred 的源文件文件夹
接下来的步骤有点麻烦,想自己换素材的读者需要自行测量一下截图相对于壳图素材边缘的距离。比如说想把一张 MacBook 外接显示器截图放在壳图上,就需要测量截图左上角到壳图左侧、上方两侧边缘的像素距离,像下面这样:
测量距离
测得的数据将用到 Alfred 或 LaunchBar 的脚本中。对 Shell 比较熟悉的读者可以直接照样往下新写几段,不太熟的话建议直接修改现有脚本,直接在脚本中挑一个不想要的素材,全部替换成你的新素材名称(只需要文件名,不需求前面的路径);之后,将修改过的素材距离也改一下,换上刚才的 左边距x上边距
添加完素材后需要修改几处代码
苹果官方提供的壳图素材颜色比较单一,更多素材可以在 Facebook Design 上下载,不过最新的设备可能要等一段时间。如果对于套壳截图实在感兴趣,可以到各种 Sketch 的素材资源站上淘淘素材。

多设备组合拼图

大家可能在很多都地方看到过下面这种组合图,它们往往用来展示一个应用在不同设备上的界面,苹果官网上就经常出现,一眼看上去就比孤零零的单张矩形截图要生动和专业。
苹果常用的组合套壳截图
如果向别人介绍应用或者展示操作的时候也能用上这种拼图,同样可以让自己的展示效果更有个性。
这样的图制作起来倒不难,基本上的修图工具都可以用来完成拼接工作。问题是一步简单的叠放、拼接,有点让人怀疑是否有必要——导入导出的操作有点大动干戈,而且一些轻量矢量图工具(比如 Sketch)导出时还必须留个心眼设置二倍分辨率,不然会成品会糊掉。
考虑到多设备拼图视觉效果确实不错,平时用得也不算少,我就做了一套动作来简化制作流程,可以做到这头把 iOS 和 Mac 的带壳截图丢进去、那头就自动生成拼好的图片
多设备拼图效果
先要对没有第三方自动化工具的读者说声抱歉的是,这套动作似乎在 Automator 会出现问题不能解析图片而暂停运行,不过其他自动化工具中跑起来倒没出现类似情况。各版本的使用方式是:
  • LaunchBar 版:选中两张素材图片,通过 Instant Send 发送到 LaunchBar,再输几个触发词(推荐 ios mac,估计这套触发词组合不容易和你的动作冲突)找到「image Concact iOS+Mac」动作,运行即可。用 LaunchBar 进行拼图
  • Alfred 版:同样选中素材,按下快捷键 ⌥Option-⌘Command-\ 准备多文件处理,输入「image Concact iOS+Mac」动作名一部分应该就能看到它了,同样回车运行。用 Alfred 进行拼图
为了不挡住电脑截图的主要内容,手机截图的位置可以进行微调。运行动作后会询问你要把手机截图往右侧移动多少像素,默认情况下是移动 100 像素,如果担心还是会遮住下方内容,可以自己调高一些。
可以自己微调摆放位置
另外,现在手机的分辨率非常高、宽度几乎能顶上半个电脑屏幕,直接拿来拼图显然有些夸张,作为参考,在和宽度 2560 像素的全屏截图搭配时手机截图最好先等比缩小到 700 宽度上下(可以使用我以前制作的一个 尺寸调整动作)再进行拼图。我没有写死的原因是大家的设备尺寸都不一样,有些读者可能还有分辨率更高的外接显示器,所以就把尺寸调整的步骤留给了各位。
实现方式上,拼图动作其实模仿了我们手动操作的步骤,大致分以下几步:
  1. 判断图片是手机截图还是电脑截图:通过长宽对比来判断,绝大多数情况下长度更大的是手机截图。通过这组判断,拼图动作允许大家选中素材一股脑丢进去,不再需求考虑先放哪个。
  2. 扩大电脑截图的画布尺寸:直接把两张截图叠起来时,上方图片超出下方的部分会被裁掉,这一下子就让成品不堪入目了。为了避免裁剪的情况发生,动作会根据电脑截图宽度和上方截图需要调整的尺寸自动调整整体画布大小,不让素材溢出到外面。
  3. 进行截图拼接:为了模仿苹果的摆放效果,我把 iOS 设备截图放在了整体图片的右下角,你可以试着修改其中 southeastsouthwest 左下角,其他方位以此类推。要注意如果换作摆到左边,-extent 前面要加上 -gravity east ,毕竟方向翻过来了,画布调整的方向也要跟着变动(参考)。
像前面这样分解开后,每个命令也不过是 imagemagick 中的基础零件,差不多一条命令对应我们的一步手动操作;一旦根据我们的需要把各个单条命令串连起来,就能三步并作两步快速完成图片处理,其中的成就感越是机械工作多的人越能体会。
将 iPad 和 iPhone 截图组合在一起
虽说出发点是像模仿苹果的展示效果,实际用起来不必拘泥于电脑截图,窗口截图、iPad 带壳截图也可以充当拼图素材,总之希望在一张图里统一展示多平台效果时,就可以考虑这个拼图动作。

制作圆角卡片

再来看一个制作带阴影圆角卡片的动作。
制作圆角卡片
Sketch 专业作者 @WATERS 曾经问我有没有办法快速制作圆角卡片,我原先以为这只是一种见仁见智的设计风格(圆角卡片在 iOS 10 之后忽然流行起来),自己试过之后才发现它的视觉效果确实很出众:阴影区分开了图片和背景,圆角让整体柔和不突兀,处理过的图片就像一张精致的卡片浮在页面上
处理前后对比
这样的效果用 Sketch 实现起来确实比较麻烦,需要靠蒙板裁裁剪剪,处理大批图片时尤其折磨人。好在制作流程是比较固定的,无非四角裁好、加点阴影,所以我把这些操作抽离出来通过 imagemagick 实现了一次,实现了批量操作。裁好的图片会以新文件的形式放在原图旁边,中途需要产生几个临时文件,不过最后都会被自动清除掉。
制作圆角卡片
这个动作没有太大的自定义空间,圆角弧度、阴影尺寸等细节只要没遇上 4K、5K 分辨率的夸张截图,一般看上去还比较协调。下次如果嫌弃截图看上去惨白一片,可以试试把它们转换成更生动一些的圆角卡片。
另外提醒一下,比起压缩体积、转让格式这些常规操作,制作圆角卡片的动作使用率估计不会太高,比较推荐安装 Automator 版本,可以避免占用启动器工具的位置。我的使用方式是把常用操作放 LaunchBar 里,敲几个首字母就能找到;偶尔一用的动作放右键菜单或快速操作,平时不出来打搅工作。
启动器 LaunchBar 和右键菜单分工

导出 Sketch 画板

最后一个动作是将 Sketch 源文件导出为普通图片。剪辑视频的人喜欢打趣「后期一时爽,导出火葬场」,其实做图也有类似情况,导出成品这一步原本应该很有成就感,但是重复的参数选择、点按操作以及大文件的卡顿都让人觉得乏味。
之前给写作课和付费教程配图的时候1
 ,往往一画就是十几张,好不容易和同事们相互确认完可以定稿,结果还得一份一份导出来,挺让人沮丧。
我最常用的做图工具是 Sketch,它自带了一套图品处理命令,其中也包含了导出成品的功能,正合我意。
Sketch 的命令行工具
批量选中 .sketch 源文件后运行「Export Artboard」动作,即可获得一批以画板为文件名的成品图片。再次提醒一下 Alfred 的文件批量操作快捷键是 ⌥Option-⌘Command-\,它不像 Automator 或 LaunchBar 那样会主动处理多个文件,需要你指明批量操作模式。
导出 Sketch 画板
如果 Sketch 文件中没有创建画板,这个动作是没法凭空变出东西来的,运行后没看到图片的话最好检查一下源文件是否。不习惯使用画板的可以在终端 Terminal 中输入以下代码,根据 Sketch 命令行供工具的说明文档改造一个符合习惯的动作。
/Applications/Sketch.app/Contents/Resources/sketchtool/bin/sketchtool

这个动作是为 Sketch 用户定制的,不过思路也可以参考一下用到其他图片处理工具中。Photoshop、Illustration 和 Pixelmator Pro 等工具都支持 Automator 或者 AppleScript,同样可以把部分机械操作简化为自动化动作。

  • 1


macOS 最佳命令行客户端:iTerm | 使用详解

macOS 最佳命令行客户端:iTerm | 使用详解


「终端」,给我们大多数人最深刻的印象,可能就是某一次在搜索教程的时候,里面出现了「在 Spotlight 里面搜索终端,在出现的小黑框里面输入 XX 命令」这样的话语。没错,躺在应用列表中的「终端」,正是我们除了利用「图形界面」外,和计算机进行沟通交流的另一种途径。
终端并不是专业用户的专利,实际上,各类用户都可以利用终端。熟练的自动化玩家,可以利用终端进行快速的脚本执行;开发者在日常的开发工作中,则会使用终端进行复杂的命令操作;即使是初入 Mac 的新手玩家,也可以利用终端对系统隐藏的功能进行设置……
终端可以进行多种操作
但是,macOS 自带的终端 Terminal.app 在功能上和一些专为 macOS 设计的第三方终端还是有所差距的。Mac 第三方终端中的佼佼者 —— iTerm,不仅受专业用户青睐、还有着强大的社区支持,即使是普通人也能快速上手。因此这篇文章,我想为大家介绍我心目中 macOS 上面最好、最强大的终端 —— iTerm。

到底什么是终端?

所谓的终端(Terminal)其实很好理解,它就是一个供输入、输出文本命令的窗口。无论是 macOS 自带的朴素的 Terminal 应用,还是作为本文主角的更加华丽的 iTerm,本质上都是一个窗口。
使用终端时还有一个容易与之混淆的概念「Shell」,这里我们借用另一篇文章《告别 Windows 终端的难看难用,从改造 PowerShell 的外观开始》里的一个比喻来厘清两者关系:
Terminal 就像是一个人的衣服,可以有各种颜色、形状甚至功能;那么 Shell 则是这个人,你和他沟通来获得信息,并且他可以在与你沟通的过程中事先告诉你许多信息、提醒,甚至自动帮你补充你想说的话。
终端是用户和电脑沟通的途径
macOS 内置的 Terminal App、Windows 最近广为宣传的 Windows Terminal 以及 Linux 上面的各种「终端模拟器」等等,都是终端工具 —— Terminal。今天的主角 iTerm,则是一个专为 macOS 开发的第三方终端工具。
我们在 iTerm 等终端工具中,可以输入「脚本」、「命令」等,执行某种操作,来和计算机进行沟通。这是现代计算机中「终端工具」最大的功能和作用。

什么让 iTerm 脱颖而出?

强大的、专为 Mac 开发的富余功能

将 iTerm 和其他终端工具区分开来的,就是它丰富、强大、且专为 Mac 设计的功能。这些功能在 iTerm 的官网上足足介绍了有 30 余个。其中,最让我印象深刻的,也是我目前几乎离不开的功能就是:
  • 全面的快捷键支持,上下左右任意分屏,以及通过快捷键建立 Quake 窗口
  • 通过 Profile 配置文件保存多个窗口配置,能够一键套用现成配置
  • 专为 macOS 编写的 Shell 集成脚本
  • 利用 Metal 框架的 GPU 渲染加速
其他诸如「剪贴板历史记录」、「图片显示」、「密码管理」等等,也都是 iTerm 所拥有的强大功能。这些为 Mac 开发设计,并为 Mac 优化的功能,让 iTerm 成为 macOS 上面终端工具的不二之选。在后文中我会对这些功能和使用场景进行具体详细的介绍。

丰富的社区主题支持

除了上面提到的 iTerm 本身强大的诸多功能以外,iTerm 还获得有社区强大的主题、配色支持,网上别人晒出的靓丽主题,你几乎都可以一键安装。目前 GitHub 上面最大的开源终端主题库,就是以 iTerm 命名的 mbadolato/iTerm2-Color-Schemes
iTerm 的丰富主题
除此之外,iTerm 还支持有「备选字体」的渲染。这一特性对在命令行界面使用特殊字符的我来说非常重要,备选字体能够确保我的特殊字符渲染是正确无误的。

iTerm 的特色与功能

由于 macOS 源生自历史悠久的 BSD,于是到今天 Mac 都保证着类 UNIX 的属性。这也就意味着 macOS 本身对「命令行环境」,也就是我们的终端环境,非常友好。由于 Mac 具有现代化的、优秀的字体渲染,以及对 UTF–8 字符编码格式的友好支持,我甚至可以说 macOS 上面的命令行环境体验是所有系统中最为优秀的。
有了优秀的「底子」,iTerm 更是将 Mac 上面的命令行体验发扬光大。接下来我就来具体为大家介绍 iTerm 能在 macOS 上面玩出怎样的花样。

命令行环境的基础使用

配置 Shell 环境

前文我提到了,我们命令行环境的使用体验与「Shell 和 Terminal」这两个环境都息息相关。配置好一个优秀的 Shell 环境,我们不仅会有色彩和语法高亮,还会有诸多有用的信息,让我们命令行环境下的工作效率倍增。因此我先来简单介绍一下 Shell 的环境配置小技巧。
将默认 Shell 配置成个性化样式
在以往 Mac 平台(包括大部分 Linux 系统)里,命令行环境默认的 Shell 往往都是 bash。但是 bash 本身并不太用户友好,缺少很多诸如「命令提示」、「Tab 自动补全」以及「基于内容的色彩高亮」等基础功能。市面上有诸多有更多丰富功能的 Shell,比如 zshfish 等等。在今年秋季即将发布的 Mac 新版系统 —— macOS Catalina 中,macOS 直接将默认 Shell 升级为 zsh,因此我也推荐大家直接使用 zsh 这个优秀的 Shell 以及一个方便的 zsh 配置框架 —— oh-my-zsh。推荐阅读:《让你的 Mac 提前用上 macOS Catalina 的 Shell——Oh My Zsh 配置指南》。这篇文章里面详细的介绍了 zshoh-my-zsh 的配置方法,我这里就不再赘述了。
相信你到这里就已经将你的 Shell 环境从「白底黑字」升级换代为更为优秀的 zsh 了。实际上,到这一步你的 Shell 环境就已经完全足够日常使用,但是如果你看的我前文的截图,想知道更加酷炫的 Shell 命令是如何配置的,我这里推荐 romkatv/powerlevel10k 这个主题引擎,配上 Nerd Font 就可以达到我截图中的效果了。这些就不属于我们本文的介绍范畴,有兴趣的同学可以在我的 spencerwooo/dotfiles 仓库中找到更多信息。

色彩、主题的配置

配置好了我们的 Shell 环境,我们下面开始 Terminal 环境的介绍。事实上,好看的色彩主题配置非常简单就能搞定。iTerm 有着社区最庞大的主题支持仓库,iTerm2-Color-Schemes 有超过 200 种色彩主题的配置,我们直接访问 仓库的 iTerm 主题配置文件夹 就可以下载得到诸多主题文件,这些文件是 .itermcolors 结尾的配置文件。
在 iTerm 中使用配置文件
我们下载之后,在 iTerm 偏好设置里面选择「Profiles - Default - Colors」,选择右下角「Color Presets」点击最下方「Import」即可导入主题配置文件。有关主题的选择,推荐大家阅读我之前的一篇文章:《10 个 Terminal 主题,让你的 macOS 终端更好看
iTerm 的主题设置
在「Profiles - Default - Window」,我们还可以设置 iTerm 的默认窗口的性质,比如窗口的透明度、模糊以及背景图片等等。

利用 Profile 窗口配置保存配置信息

事实上,上面的所有配置在 iTerm 里面都相当于「一个会话(session)的配置」,为了方便大家理解,我们就称之为「一个窗口的配置」。我们可以设置、保存多个 iTerm 窗口的配置文件,在 iTerm 中,这个配置文件叫做 Profile。
将配置保存下来
Profile 除了能够配置并记录一个窗口的长宽、所使用的主题、字体以及背景等等,还有非常多可以进行自动化配置的信息。比如,我们可以自定义一个 Profile:通过快捷键新建 iTerm 窗口,打开窗口之后自动通过 SSH 登录另外的服务器,并在 iTerm 的右上角常显「远程服务器」的提示信息等等。这样,我们的 iTerm 就有着无穷无尽的自动化配置能力了。

其他

iTerm 的快捷键设置
iTerm 有着非常完善的 macOS 快捷键配置、窗口管理以及 Touch Bar 的集成,这里面有很多是其他跨平台终端工具,甚至包括原生终端在内,都很难实现的。

亮点

iTerm 在常规的这几项使用技巧基础之上,还有着许多在 macOS 其他终端工具里面找不到的小功能。这些功能使得 iTerm 在 Mac 上面的使用体验异常优秀。接下来我就为大家介绍一下 iTerm 独有的几个小功能。

全局快捷键窗口

迅速唤出的 iTerm 窗口
在文章开头,我就提到了 iTerm 快捷键窗口(Quake 窗口)的功能。简单来说,iTerm 能够让我们通过快捷键迅速的在任意界面唤出一个终端的下拉窗口。这样的特性让我们在「多任务工作」使用终端的时候效率倍增。
设置唤出 iTerm 的快捷键
我们在 iTerm 的「Preferences- Keys - Hotkey」处,可以看到「Create a Dedicated Hotkey Window…」的字样,这就是「快捷键窗口」。我们直接点击即可建立一个新的快捷键窗口。
建立快捷键窗口
接下来,我们将快捷键窗口的触发快捷键 Hotkey 进行绑定,选择确定即可配置好我们的快捷键窗口。这样只要我们的 iTerm 在后台是开启的状态,即可通过快捷键全局唤出下拉窗口。
唤出 iTerm 窗口的设置
实际上,我们创建快捷键窗口时,在 iTerm 中也新建了一个叫做 Hotkey Window 的 Profile 窗口配置。默认的快捷键窗口是占据整个横向宽度、从上面下拉的一个窗体,我们可以在「Profile - Hotkey Window」里面将窗口的大小、唤起位置以及其他相关设置进行配置,自定义我们的快捷键窗口。

Shell Integration 加持下 iTerm 强大的功能

接下来,iTerm 为了让自己和 Mac 本身结合的更加完美,专门开发了「Shell Integration」,很多时候我们可能都不太习惯终端环境的操作方式,Shell Integration 这时候往往可以助我们一臂之力。我们可以在 iTerm 菜单栏「iTerm2 - Install Shell Integration」处进行安装。
Shell Integration
点击按钮,iTerm 会自动执行一个下载命令,将脚本下载安装到你的 Mac 命令行环境中。利用 Shell Integration,我们可以让 iTerm 与 Mac 的命令行环境配合的更加完美,不仅会有更好的信息集成,还能让 iTerm 增加诸多独占性的功能。下面介绍的功能大多都需要 Shell Integration 的安装。
命令自动补全
命令自动补全
不少命令相对较长,直接手动输入还是比较麻烦。iTerm 内建了对命令的记录和补全功能。我们通过快捷键「Command + ;」即可唤出自动补全的菜单,iTerm 会根据我们当前的已经输入的命令,自动回溯并判断需要补全的命令,并提供多个选项供我们选择。随着使用次数的增加,自动补全的内容也会越来越精确,iTerm 也就越能「猜中」我们的输入习惯。
剪贴板历史记录
调用剪贴板历史记录
iTerm 会自动记录剪贴板的历史,不同于 macOS 其他剪贴板工具对全局范围内的剪贴板进行监控,iTerm 只会记录复制/粘贴进入 iTerm 的内容。我们通过快捷键「Command + Shift + H」即可唤出剪贴板历史记录下拉菜单,从而选择我们曾经复制过的命令等内容,直接粘贴进入 iTerm。
历史命令重播 Instant Replay
历史命名重播
iTerm 会自动对一次会话(session)里面我们曾经输入、执行过的命令进行记录,这对我们回溯之前执行过的命令有着非常大的帮助。比如,有时候我们使用 top 等命令时,由于输出会将之前执行过的命令清空,因此我们不能简单地通过向上滑动找到我们之前的命令。历史命令重播 Instant Replay 能够让我们自由的回溯一次会话中的全部命令,甚至可以将命令保存,以供稍后查看。我们通过快捷键「Command + Option + B」即可唤出「历史命令重放」的界面。
有关 Shell Integration 的更多功能,请参考:Shell Integration - Documentation - iTerm2 - macOS Terminal Replacement

其他

除了上面我个人觉得非常有用,能够让我们 Mac 终端体验大幅增加的功能外,下面这些小功能也是值得一用的。
  • 密码管理器:iTerm 内建了密码管理的功能,我们可以将常用的服务器登录密码存储至 iTerm 里面,方便使用。
  • 时间戳:iTerm 可以为每条命令显示其执行时间点,我们可以通过快捷键「Command + Shift + E」打开时间戳。
  • 状态栏:新版本(3.3.0)中,iTerm 正式加入了状态栏。我们可以自定义用户、主机、命令、时间以及资源利用率等内容的显示。
  • 智能选择:在需要选择日期、邮箱、网址以及由双引号括起来的内容时,有时候双击并不能正确的选择我们想要的内容,iTerm 通过「智能选择」能够方便的让我们利用「连击四下」这一操作方式,正确匹配我们想要选择的内容。
以上就是 iTerm 提升终端工作效率、让我们方便利用命令行在 Mac 上面进行交互的一些小功能。除此之外,iTerm 为了让我们能够在 Mac 上面能更加有效的利用优秀的 Shell 环境,还开发了许多脚本。下面我来具体介绍一下。

专为 Shell 开发的集成脚本

iTerm 专门为 macOS 上面的 Shell 开发了相应的集成脚本,叫做 Utility。如果你在上面安装了 Shell Integration,那么下面我介绍的工具都可以直接使用。iTerm 利用 Utility 让本来功能相对单一、封闭的命令行环境和 Mac 的图形界面环境配合更加紧密。

imgcat 直接显示图片

imagecat 命令可以显示图片
Shell 内置的命令 cat 会将一个文本文件的内容输出出来。类似地,iTerm 的 imgcat 可以将图片直接在终端中显示出来。我们只需要通过命令:imgcat <图片名称> 即可将图片显示在 iTerm 里面。

imgls 文件夹下图片行内显示

imgls 命令显示缩略图
imgcat 相对应的是 imglsls 命令的作用就是会将目录下的全部文件和文件夹进行列出。iTerm 的 imgls 则是会将目录下的图片文件在列出时加上缩略图的显示,这样我们就不必在 iTerm 里面看着图片名称而需要再打开 Finder 查看图片本身是什么了。

其他

除了上面我介绍的几个我较为常用的命令外,iTerm 还有下面一些命令,大家可以根据自己需求进行使用:
  • it2dlit2ul:通过 iTerm 登录服务器之后,直接上传、下载文件
  • it2attention:让 iTerm 通过特效、通知等方式引起我们的注意(比如在 Homebrew 更新/安装完成、或 Aria2 下载文件结束之后,自动执行此命令从而让我们知晓任务的完成)
  • it2check:检查当前使用的终端是否为 iTerm
  • it2setkeylabel:设置 iTerm 在 Touch Bar 上面的功能显示标签
更多 iTerm 的工具和命令请直接参考:Utilities - Documentation - iTerm2 - macOS Terminal Replacement

总结

虽然在 2019 年的今天,我们大多数普通用户利用「图形界面」操作电脑已经非常熟悉了,但「终端」依旧是一种不可或缺的命令执行途径。利用「图形界面」进行操作非常繁琐的一件事情,如果利用「终端」直接通过几行命令进行执行,可能会事半功倍。(甚至会更酷一些。😝)
macOS 是一个对「命令行环境」非常友好的操作系统,而 iTerm 可能是 macOS 上面功能最为强大的「终端」。希望本篇文章能够让你 Mac 的「终端环境」全面提速,将效率、自动化进行到底。感谢阅读。