欢迎大家留言或者邮件 [email protected] 分享你喜欢的效率工具或者效率技巧。
我们每天使用计算机系统实际上是在调配和运用计算机资源,这些资源包括网络、CPU、内存、磁盘、能量(电池、电源)。资源永远是有限的,虽然现在计算机的运算能力已经很强大了,我们仍然会时不时遇到系统卡顿、卡死、网络不畅等问题。处理这些问题的方式通常是等待、观察,或者粗暴一点直接重启,非常浪费时间。
今天我们来聊聊如何利用 macOS 及其生态中的 App,让我们时刻掌握 macOS 的核心资源状态。
Activity Monitor.app 最早在 Mac OS X v10.3 被引入 Mac 系统,当时是合并了旧版系统里的 Process Viewer 和 CPU Monitor。和隔壁家 Windows 通过 ctrl+alt+delete
唤出的 Task Manager 的功能类似,可以用于查看 CPU/Memory/Network/Engergy/Disk 等资源的占用情况。
选中某个进程亦可进行关闭和查看详情操作。在 CPU Tab 下双击左下角的图像可以弹出详情窗口,用于查看 CPU 负载历史:
不过 Activity Monitor 提供的信息还不够清晰易读,于是 macOS 生态出现了很多优秀的 App 弥补这部分能力的不足。
bjango 出品的 iStat Menus 就是一个非常优秀的 App,可以常驻在 Menu Bar 上。
当我们发现网络下载不符合预期的时候,只要瞥一眼 Menu Bar 上的实时网络速率就知道到底是网络挂了还是带宽被占满了。
当我们用 Xcode 编译一个比较大的项目的时候,我们期望它能吃满 CPU 以节省时间。
当我们在内网拷贝一个大文件的时候,我们既想知道磁盘的读写速率,也要看看网络带宽是否被占满。
只有当我们掌握了这些信息,我们才知道现在 macOS 到底发生了什么事情,而不是遇到问题的时候一脸懵逼,重启解决一切问题。
iStat Menus 是我自己在用的 App,也有一些其他的 App 可以替代部分功能,有兴趣的朋友可以自行 Google 一下。
本效率系列提到的 App 都不是为了给他们打广告,而是希望通过介绍 App 广播一个思维方式,即:找到问题,找到解决问题的方法。工具是会一直进化的,但是发现问题和解决问题的思路是不变的。
iStat Menus 可以解决资源层面的监控,但是当我们在终端里跑一些命令的时候,我们需要指导当前命令的详细日志。比如 npm install
要看看是不是被源科学了,brew update
一般时间很长要看看是不是中间挂了。
这时候我们可以使用类 Unix 系统都有的一个标准参数来解决这个问题,即:
#--verbose 长命令 #-v 短命令
brew update --verbose
这个 option
是经常接触终端者的常识,不过根据我的观察,不清楚这个通用 opt
的人还是比较多的,遂记之。
官网: https://www.macbartender.com
用上 iStat Menus 之后本就局促的 Menu Bar 变得更加拥挤了,这时候我们需要用 Bartender 来管理整个 Menu Bar 上的所有 icon。
使用这个 App 我们可以按住 cmd
+ 鼠标左键来移动 icon 的位置,还可以把不常用的 icon 隐藏起来。
当这些被隐藏起来的 icon 有变更的时候,比如说 Dropbox
变成了 loading 状态,它就会临时放到常用列表中展示一下,loading 结束后又会进入隐藏列表。
对于屏幕不大的 MacBook 来说比较有用。
现在媒体文件随便上个 4K 就是几十 GB 的空间占用,如果读者朋友使用相机拍照拍视频的话,很容易我们的机器就被大文件填满。这时候我们需要知道哪些文件占用了多少空间,使用 Mac 上最优秀的动画 App - CleanMyMac 可以自动清理文件。不过他的价格太贵了,大概钱都用在打广告营销上了,完全不值得这个价格。如果读者朋友有使用 Setapp 套餐的话可以用一下,如果没有我不太建议单独购买。
事实上我们只需要知道磁盘上的空间被谁占用得比较多,找到对应的位置,判断一下文件是否可以删除然后清理一下就行。在终端使用 du
命令我们可以递归查看任意文件夹及其子目录的空间占用情况,不过 UI 上不太友好。
使用 Daisy Disk 可以用比较优雅的饼图来展示空间占用情况:
Trial 版无需付费,但不能拖拽删除,启动 App 时需要等待几十秒。不过反正打开这个 App 的频率很少,删除通过终端执行就行了,所以我一直用着 Trial 版本(这样不对🤦♂️😂)。
Setapp 是一个订阅服务,付费后可以在会员周期内免费下载和更新仓库里的 App。包括 iStat Menus, CleanMyMac X, Base, BetterTouchTool, CodeRunner, Ulysses 等多款知名的高价 App 都在上面。通过 Stack Social 上常年打折的 Bundle 购买非常划算: https://stacksocial.com/sales/setapp-1-yr-subscription(不过目前好像 sold out 了,可以留意一下黑五之类的营销活动,一次买几年。)
欢迎大家留言或者邮件 [email protected] 分享你喜欢的效率工具或者效率技巧。
在 macOS 效率系i列 01: 窗口管理 | 枫言枫语 我们简单介绍过 Hammerspoon 这个 App,它可以用来做窗口管理,且已经有许多人编写了自己的窗口管理脚本,只需下载使用即可。
当时我们亦提过,这个东西是一个自动化工具,它能做的事情非常多,不仅仅用于窗口管理。
本系列此前的文章已经介绍过,使用 Alfred 之类的效率工具可以节省大量重复的机械劳动,但是每个工具的设计都是有针对性的。Alfred 也有它不太擅长的场景,比如说它的 UI 完全集中在输入框内,并不适合比较复杂的交互和内容展示。虽然它也有 iTunes Mini Player 这样的 UI:
但是我觉得并不好用。本着“能用机器做的事情就不要自己动手”的想法,今天我们来聊聊如何利用 macOS 上的自动化工具帮助我们自动完成一些相对复杂的工作。
和我们在 macOS 效率系列 03: 全键盘操作的快捷入口 提到的 Spotlight Feature 一样,同在 2004 年的 WWDC 上由乔布斯首次介绍了 Automator 这个 App(
从 1:24:23 开始)。我接触 macOS(OS X) 比较晚,第一次使用的是 OS X 10.6 Snow Leopard。Automator 已经存在好几年了,我第一次使用 Automator 是用来压缩设计师给我的视觉稿。当时 iPhone 4 发布大约一年左右,大家第一次接触 Retina Display,图片资源也需要用 @2x 来区分高清版本。
设计师给我的视觉稿是 2x 大小,我嫌自己把每一张图都缩小太麻烦,即便全程使用快捷键也依然是大量的重复工作。所以用上 Automator 写了一个 Workflow,作为一个Service(现在叫做 Quick Actions 了) 存在 Finder 的 Services 菜单里。以后设计师给我发图我只要全选然后跑一遍 Service 就可以把 2x 图缩成 1x 图并且自带后缀重命名了。
年代久远已经找不到当年写的自动化 Service 了,大概是类似这样的感觉:
可视化编程是 Automator 最大的特点,无需写代码背景,只要使用鼠标拖拽点击就可以操作 Finder, Photos 等多个系统 App。这个来自 Apple Script 团队的作品,把自 1993 年以来随 System 7 发布的 Apple Script 又向前推了一步。
创建好的 Service 和 Workflow 都可以用文件的形式进行分享。不过,还有比 Automator 更好用的可视化编程 App。
官网: https://www.keyboardmaestro.com/main/
最早于 2002 年由开发者 Michael Kamprath 发布的一款可视化编程的自动化工具,比 Automator 出现还要早。2004 年被位于西澳珀斯(Perth)的软件公司 Stairways Software 收购了,并在此基础上不断优化和改进。目前最新的版本是 2018 年 8 月发布的 8.2.4,相信今年 macOS Catalina 发布后这款 App 还有不少辅助功能限制授权的 API 要进行更新。
相比 Automator,Keyboard Maestro 支持更多的系统事件通知,比如通过 WiFi SSID 变更可以驱动一个 Marcro 自动执行。
Keyboard Maestro 也支持把操作入口挂到 Menubar 上自己 icon 的下拉菜单里。
我曾经玩过一阵子 Auto Window Tiling 的 Serivce,叫做 KWM,这是它的项目地址: koekeishiya/kwm: Tiling window manager with focus follows mouse for OSX。因为这个东西是完全命令行操作的,所以当时我在 Keyboard Maestro 的菜单上挂了 KWM 的重启/启动/关闭的快速入口。
它的做法简单粗暴,就是自动把桌面上所有的窗口强行布局成配置文件里选中的 layout。支持通过鼠标加上快捷键来交换窗口位置。但是后来觉得这种强制的做法不太适合我就没再使用了。
如果你没有任何编程基础,也完全不想动脑思考逻辑,那么你还可以使用 Keyboard Maestro 的录制功能。通过你的 UI 动作自动帮你生成对应的 Macro。
创建一个新的 Macro,点击右下角的 Record 按钮即可开始录制:
Keyboard Maestro 支持的触发器(Triggers)和动作(Actions)很多,利用好这些工具可以组合出非常有意思的东西来。
你甚至可以用触发器自动收集完所需信息之后,打开一个浮窗加载网页,把信息通过网页 UI 的方式展示出来:
我们还可以把 Alfred 和 Keyboard Maestro 结合起来用,就看你的想象力了。
官网: http://www.hammerspoon.org/
从官网的记录来看,Hammerspoon 最早的版本是 2014 年发布的 0.9.4,自那以后 Hammerspoon 一直是 0.9.x 的状态在更新。这个开源项目在 Github 上有超过 5k 个 star,发布了五年依然没有宣布 1.0。
项目的主力开发者之一 @cmsj 今年 5 月也在 issue 中讨论这个 App 差不多该发布 1.0 然后往 2.0 前进了。
和上文介绍的可视化编程 App 不同,Hammerspoon 是硬核的真·编程。你需要在用户侧编写 Lua 脚本,这个脚本将跑在 Hammerspoon 提供的 Lua 虚拟机上,通过项目提供的 luaskin 接口,和应用层进行通信,从而只用 Lua 脚本就能使用系统提供的各种能力,包括公开的和私有的 API。
假如读者朋友已经有一定的编程经验但是不熟悉 lua 语言,这里推荐使用 Learn X in Y minutes 来快速上手(亦有中文版: X分钟速成Y)。Lua 相比于其他特性丰富的语言来说要简单得多,很容易学,而且我们在 Hammerspoon 最主要的目的也只是实现自动化替代机械劳动而已,并不需要多么高深的 Lua 功力。
Hammerspoon 的 UI 非常简单,只有一个显示 Log 和可以进行全局设置的窗口,其他所有的配置都放在 ~/.hammerspoon
目录下。
➜ .hammerspoon git:(dev) ls
README.md Spoons hs init.lua
init.lua
是 App 启动后会读取的初始化脚本,也是我们的主战场。通过 require
关键字我们可以引入官方提供的能力或者自己下载的第三方库:
local tiling = require "hs.tiling"
local hotkey = require "hs.hotkey"
local mash = {"ctrl", "alt"}
hotkey.bind(mash, "h", function() tiling.cycleLayout() end)
tiling.set('layouts', {
'gp-vertical', 'columns'
})
上述代码实现了通过快捷键 ctrl+alt+h
对当前 Workspace 下所有窗口进行重排布局,用到的 hs.tiling
来自 https://github.com/dsanson/hs.tiling, hs.hotkey
则是 Hammerspoon 自带的能力。
Hammerspoon 官方文档有所有 API 的说明。基本上 macOS 自带的能力 Hammerspoon 都有覆盖,包括 WiFi 触发器,蓝牙触发器,自带 SQLite,控制 Spotify,控制 iTunes,自定义弹窗,alert,notification 等等。
如果官方提供的能力不能满足你的需求,你还可以自己把 Github 上的代码 clone 下来,自己实现需要的 API。
这里还有个用户贡献的参考配置列表:https://github.com/Hammerspoon/hammerspoon/wiki/Sample-Configurations。下载覆盖后即插即用。
首先是用于窗口管理, ctrl+alt+left/right
来实现水平三分屏(大屏幕用),ctrl+cmd+left/right
实现两分屏(MacBook 用)。ctrl+alt+h
实现多列自动布局。
然后是 WiFi Watcher,发现我连上了公司的 WiFi 就自动帮我把 MacBook 静音。
加了一个快捷键自动 Reload Config 方便调试。
当切换到 Finder App 的时候自动激活属于 Finder 的所有窗口,不然默认情况下只会激活最后一个,如果开很多就比较难找到我要的那一个。
目前我只用了这一些,但是 Hammerspoon 的可扩展性非常强,基于它可以实现很多有意思的东西。如果读者朋友具备写代码的能力的话,用脚本实现是比可视化编程更灵活更高效的做法。
欢迎大家留言或者邮件 [email protected] 分享你喜欢的效率工具或者效率技巧。
不管使用哪一个 App 或者操作系统,掌握快捷键永远提高效率最简单的方法。就像它的名字"shortcuts"一样,它的设计就是为了让你节省时间的捷径。
macOS 系统自带许多有用的快捷键,有全局的也有各个 App 自己的。Mac App 的特色是 Menubar 上的菜单如果是重要操作一般都会带有匹配的快捷键,而且实现起来非常简单。所以 macOS 生态里的快捷键非常统一。用户只需要学习一套快捷键操作,就可以复制到其他 App 里面。
大部分使用 macOS 的读者朋友应该都习惯了相当一部的快捷键,但可能还有些有用的快捷键没有用到。我在写作此文的时候也发现有些快捷键之前都不知道,整理的过程也是我学习的过程。
本文整理 macOS 几个大类的快捷键,希望能对读者朋友们有所帮助。更多主流 App 快捷键大家随时可以通过 Google 关键字: App Name + Shortcuts 或者是 App Name + Cheatsheat 来找到。
系统自带的快捷键有一部分可以从 System Preferences -> Keyboard -> Shortcuts 里面直接找到:
这里我们介绍几个比较常用到的全局快捷键:
Key | Action |
---|---|
cmd + tab | 在已经打开的 App 之间进行切换,按住 shift 可以反向选择 |
ctrl + left/right | 左右切换 Workspace |
ctrl + up | 显示 Mission Control |
ctrl + down | 显示当前 App 所有 Windows |
option + cmd + l | 在 Finder 打开 Downloads 目录 |
option + cmd + d | 显示/隐藏 Dock |
option + cmd + esc | 打开 Force Quit App 列表 |
shift + option + cmd + esc | 直接 Force Quit 当前 App |
即使有上一篇文章介绍的 Alfred我也经常使用这些快捷键,比键入关键字搜索要快。当我同时需要打开多个应用或者多个窗口时也配合第一篇关于窗口管理的工具进行多窗口排布,可以大大提高工作效率。
Key | Action |
---|---|
cmd + ` | 在当前 App 的多个窗口直接切换 |
cmd + m | 最小化当前窗口 |
cmd + h | 隐藏当前 App |
cmd + opt + h | 隐藏除了当前 App 以外的所有窗口 |
cmd + ctrl + f | 进入/退出最大化 |
cmd + w | 关掉当前窗口或者当前 Tab |
cmd + opt + w | 关掉当前 App 的所有窗口 |
对于开发者或者文字工作者,每天都在敲键盘打开,能够不用鼠标就完成选择文本、替换文本之类的操作是最好的。以下是文本编辑常用的快捷键:
Key | Action |
---|---|
ctrl + a | 跳到当前行的最前面 |
ctrl + e | 跳到当前行的最后面 |
cmd + left/right | 跳转到当前行的开头/结尾 |
cmd + up/down | 跳转到当前文档的最顶部或最底部 |
cmd + del | 删掉当前光标到行首之间的所有文本 |
shift + up/down/left/right | 按住 shift 和上下左右可以选中文本 |
鼠标点击某处,再按住 shift 点击另外一处 | 可以直接选中两次点击之间的所有文本 |
alt + left/right | 向左/右跳一个单词 |
双击鼠标 | 选中最靠近的一个单词 |
三击鼠标 | 选中当前行 |
当我们按下 shift
之后我们就可以通过上下左右方向键来选择文本。这时候按住 cmd
+ 方向键的效果就带上了选择效果。比如 cmd + left
本来是跳转到光标所在行的最前面,加上了 shift
就自带了选中效果。
所以如果你想选择当前光标所在的位置到文本最底部,按住 shift
+ cmd
+ down
就可以了,非常方便。
这里的文本编辑快捷键是针对通用的文本编辑器而言的,喜欢 Vim/Emacs 的朋友也可以安装对应的插件,实现更加高效的操作。
比如在 Vim 里面,跳转到文档最顶部只需键入 gg
即可。选中当前光标到最顶部则只需 vgg
,理论上是要更加省时间的做法。只是学习曲线要高得多,如非码农,一般也用不上。
Key | Action |
---|---|
shift + cmd + 3 | 截当前全屏并存文件到桌面 |
ctrl + shift + cmd + 3 | 截当前全屏并保存到剪贴板 |
shift + cmd + 4 | 按下后拖拽鼠标选择截图区域,或者按下 space 直接截取当前窗口并保存到文件 |
ctrl + shift + cmd + 4 | 按下后拖拽鼠标选择截图区域,或者按下 space 直接截取当前窗口并保存到剪贴板 |
系统自带的截图已经非常之好用,但是藏得比较深。绝大多数人都使用第三方 App 来截图我觉得也无可厚非。
我自己一般只用系统截图,只有需要对图片进行标注时会使用第三方 App。一般用: Annotate - Capture and Share on the Mac App Store
它的快捷键和系统的一致,我无需再学一套快捷键,截图后会弹出主窗口用于编辑。
Key | Action |
---|---|
cmd + , | 打开当前 App 的 Preferences 窗口 |
cmd + w | 关闭当前窗口 |
cmd + 1/2/3 | 选中当前第 n 个窗口 |
ctrl + tab | 切换到下一个窗口 |
shift + ctrl + tab | 切换到上一个窗口 |
cmd + l | 在 Safari/Chrome 中直接选中地址栏 |
cmd + r | 在 Safari/Chrome 中刷新当前页 |
cmd + f | 大部分支持搜索的 App 的搜索快捷键 |
cmd + opt + f | VSCode/Sublime 之类的 App 可以支持完整 Workspace 搜索 |
cmd + t | 大部分多 Tab 应用支持以此创建新 Tab |
cmd + shift + [ | 大部分多 Tab 应用支持以此往左切换 tab |
cmd + shift + [ | 大部分多 Tab 应用支持以此往右切换 tab |
cmd + shift + n | 在 Finder 中创建新文件夹 |
Apple 官方有一份非常详尽的快捷键列表,有兴趣的朋友可以到这里查看: Mac keyboard shortcuts - Apple Support
开发一个带 UI 的 Mac App 一般都会有一个 MainMenu 的 Storyboard,这个东西在创建工程的时候由 Xcode 生成,自带大量官方的操作和快捷键。开发者开发 Mac App 的时候只需往菜单上增加快捷键和对应的 Action 就能实现 App 内快捷键了,非常方便。有一个叫做 CheatSheet 的 App 就是遍历当前 App 的所有 menu 然后把得到的快捷键列出来给你。
我们即使不用这个 App,自己点一下菜单也能知道大部分的快捷键。对于常用的 App 和操作,我觉得花几秒钟时间学习一下是非常划算的投资。
至于主流 App,通常只需 Google App Name + Shortcuts 或者是 App Name + Cheatsheat 就可以得到别人整理好的列表。
有些比较重的 Web App 比如 Trello 也是自带了大量快捷键。但是大家的快捷键都不是瞎定的,比如 Trello 的许多操作都和 Vim 相仿(通过按下 ? 可以看到 Trello 的全部快捷键)。所以只要学会了一套快捷键逻辑,基本上在多数 App 都是可以复刻的,这也是 Mac 生态非常优秀的地方。
欢迎大家留言或者邮件 [email protected] 分享你喜欢的效率工具或者效率技巧。
macOS 系统提供了 Dock, LaunchPad 这样的工具让用户可以方便地打开各种 App。
同时 macOS 系统还带了一个叫做 Spotlight 的工具,大概长这个样子:
在
上乔帮主第一次介绍了 Spotlight 搜索,入口在 Finder 的右上角,主打是超快的全局文件、邮件、通讯录等数据的搜索。并随着第二年(2005)的 OS X Tiger(10.4) 发布。如果读者朋友正在使用最近版本的 macOS(比如 macOS Mojave 10.14),那么 Spotlight 已经足够好用了,可以作为快捷计算器,可以快速搜索整台 Mac 上的任意文件。也可以直接用于 Google Search,只需在 Spotlight 上输入需要搜索的词:
然后按下 cmd+B
,就会直接在你的默认浏览器里打开 Google 并进行搜索。
l
对于每日工作需要双手打字的开发者或文字工作者来说,让其中一只手离开键盘去抓住鼠标,找到指针在哪里,然后定位到目标位置按下左键,最后在回到键盘上。这个过程是非常浪费时间的,做一次两次无所谓,但是当我的主要工作都是双手打字的时候,鼠标就成了一种分心和累赘。
即使是更多依赖鼠标的设计师们,常用的 Photoshop,Sketch 等多个主流设计 App,也是尽量让快捷键能够被一手完成,不需要让另一只手离开鼠标过来辅助。
所以让双手尽量保持在应有的位置是高效的秘诀。不管是文字工作者还是开发者,Google 是每天都要进行不下数百次的操作。能够双手不离开键盘完成无疑是效率的保证。
Spotlight 在最近几次 macOS 的更新中已经变得越来越好用,那么还有没有比他更好用的全键盘操作工具呢?
Spotlight 从 OS X 10.4 发布到今天的变化明显受到来自 macOS 生态中许多优秀 App 的影响。
Quicksilver 就是比较早做快捷入口的 App 之一。
默认使用 ctrl+space
呼出,输入任意关键字即可进行全局搜索:
同时它还支持多种系统事件 Triggers,支持 Plugins:
同时它也在 Github 上开源。不过该项目已经远不如当年活跃,目前最主流的全键盘输入/输入工具是——Alfred。
Alfred App 本身免费,如果想用它的 Powerpack 则需要额外购买 License。免费版的 Alfred 已经支持许多实用的功能。首先全局搜索应用、文件、日历等信息是基本功能无需赘述。这里介绍几个非常实用的功能。
系统剪贴板 cmd+c
/cmd+v
的操作现在已经成为所有用户的基础技能。但是默认情况下剪贴板只会保留最后一次复制的结果,当我需要复制多个数据,或者记得好像五分钟前复制了一个东西但是已经没了的时候,剪贴板历史记录非常有用。
按下默认快捷键 option+cmd+c
,Alfred 会显示你的剪贴板历史记录。支持图片,文本,和文件列表。你可以在设置里面选择保留时长,也可以主动清理缓存结果。
对于经常需要回过头去重新复制一遍的情况,有一个完整的列表帮助我们节省了大量的时间,可以说是不可或缺的一个能力。
如果你不使用 Alfred,有些其他的 App 也实现了同样的功能。比如: Paste - The new way to copy and paste on Mac and iOS
除了保留历史记录之外 Paste 还自带一个 Universal Clipboard,可以在 iOS 上同步 Mac 上复制的东西。不过我个人连系统自带的 Universal Clipboard 都不怎么用,所以只用 Alfred 就足够了。
Alfred 支持快速使用系统命令,比如关机、重启、清空回收站、启动屏保。
我个人最常用的是输入 em
两个字母之后自动匹配第一个选择,清空垃圾桶。
这里介绍一个小技巧,对于在开放式办公室工作的读者朋友可能有点用。平时我们用着自己的 Mac 工作时很多内容是相对敏感的,如果这时候想起身去个洗手间,有的人可能会选择 Lock 一下屏幕,回来后再密码或者指纹解锁,继续工作。
我一般选择打开屏幕保护程序,用的是 IG 网红壁纸 fliqlo。
那密码保护怎么办?在 System Preferences -> Security & Privacy 里面我们是可以设置屏保和 Sleep 之后多久要求输入密码的。这里我设置为 immediately。
Alfred 可以进行非常快速的 Google 搜索。Alfred 的绝大部分操作都是进行命令匹配,类似我们在终端命令行的使用体验。但是通常情况下我们要放进 Google 搜索的内容都不会 Match 到命令,这时候就会触发 Alfred 的默认行为:Search。
你可以在 Preferences 中设置默认的搜索引擎,或者进行添加、删除、修改等操作。如果真遇到我的搜索关键词和命令重复了,我才会在前面加上关键字,比如:
google shutdown
我们每天都要进行成百上千次的 Google 搜索,能够把这个过程的时间节省一点,累积起来还是比较客观的。
Alfred 还支持计算器,也是非常有用的功能,简单计算直接快捷键呼出然后就得到结果了。
Alfred 也支持查词典,用的是系统的词典 App。
不过词典这个东西好不好用得看词典本身,我比较常用的而是欧陆词典
词库比较全,支持结果的网络 wiki 搜搜,支持在 Menubar 上使用全局快捷键快速查找,非常方便。
以上 Alfred 自带的 Features 已经让这个工具足够应付许多场景了,但是它真正好用的地方还在于丰富的插件库——Workflows。
我比较常用的 workflow 是:
直接在 Alfred 里搜索并杀死某个进程,比起 option+cmd+esc
,我比较喜欢这种方式。
只是把屏幕关闭,但是不进入 Sleep 状态,保持网络连接和各种 App 的后台活动。通过快捷键触发,在我不想屏保的时候我会选择用这个。
输入 fi
或者 if
可以在 iTerm 中打开 Finder 当前文件夹,或者在 Finder 中打开 iTerm 当前文件夹。
Alfred 的生态很好,搜索 Alfred Workflows 你可以找到许多非常有用的东西。
Powerpack 分为 Single 和 Mega 两种(以前还有 Family),如果你用得多的话我建议买 Mega,只要升级两次就赚回来了。
Alfred 是目前最流行好用的效率工具之一,但总有一天会有比它更好用的东西出现。这也是很多人鄙视写工具介绍类的文章的原因。
“macOS 效率系列”也不打算作为一个“介绍”来写,而是希望之前没有想过抛弃“重复机械劳动”这件事情的朋友们如果看到可以有一些思维方式的启发。
工具是为人服务的,人不会因为用了什么工具而变得更加高级或者更加优越。所以如今到处存在的各种“鄙视链”我们当做段子看看就好,拿它当真就非常可笑了。
介绍 Alfred 和其他的效率工具是有意义的。以前公司有一段时间实行内外网分离,所有的员工每天都需要进行多次内外网切换的操作来实现无阻碍查资料和拉取、提交代码这些事情。
我们当然可以通过鼠标点击右上角 WiFi 按钮,从列表中找到需要的 SSID,单击,等待网络连接成功,然后再去做自己该做的事情。
但是这样的事情做多几次之后就应该要有一种思维:我不想做重复机械劳动。
当时有一小部分同事(当然也包括我自己)使用 Alfred 或者直接用 Apple Script 来完成这件事情,只需要非常简单的快捷键触发,网络就切换好了。
但是从绝对人数来看,这样的人还是占了非常非常少的比例。这是非常正常的,但是我也相信这 90% 手动切换网络的人里面也有相当一部分人不知道有更快捷的方式。一旦他们知道他们也会使用更高效的方法。
所以科普类的文章,介绍效率工具的文章我一直觉得是非常有用的,并不是每一个人都可以只看接口和文档就知道如何使用一个足够复杂的工具,更不用说连这个工具都没听说过的人了。
macOS 生态中有非常多实用的效率工具,也非常容易通过搜索找到。本文只是总结一二,也并不一定适合所有人,但是依然希望能对读者朋友们有一点点的帮助,那么这个系列的目的就达到了。
欢迎大家留言或者邮件 [email protected] 分享你喜欢的效率工具或者效率技巧。
光阴荏苒,日月如梭。
如何把有限的时间和精力用在有意义的事情上是人类无法逃避的问题。作为 macOS daily user,高效用好 macOS 系统及其生态中的各种工具可以让我们少浪费一些生命在无意义的重复劳动中。
关于 macOS 的效率工具网络上已经有非常多的文章可供参考,本系列不过总结一二,希望能对读者有所帮助。
终端(computer terminal)是一个历史遗留下来的名词,早期的终端机大概长这样。这个不是个人电脑,只是一台显示器,接了一个键盘(DEC VT100)。背后有一台巨大的主机,对接很多台终端,这样每个终端就是一个输入输出设备。
今天大家都在用个人电脑(PC),普通用户基本不会遇到多终端共享同一个主机的情况。但也并不是完全没有终端,比如车站的刷卡机就是一台终端机。
所以现在各种类 Unix 系统——比如 Linux 的各种发行版,和基于 FreeBSD 的 macOS——都在 UI 层虚拟了一个终端。
当你打开虚拟终端的时候,和古老的物理终端一样,会运行一个最基本的人机交互程序,称为 Shell。
在 Shell 中输入一行命令,它就解释执行这一行,然后显示结果。另外 Shell 也支持批量处理命令,需要写一个 Shell 脚本,然后执行它。历史上有多种不同的 Shell:
sh
: Bourne Shell,由 Steve Bourne 开发,绝大多数 UNIX 系统标配csh
: Bill Joy 开发,BSD UNIX 系统标配ksh
: David Korn 开发,兼容 sh
,并支持 csh
的新功能tcsh
: csh 的加强版bash
: Bourne Again Shell,GNU 开发的,基本上是所有 Linux 系统默认的 shell 了想要知道你的系统自带了什么 shell,你可以在终端运行:
cat /etc/shells
macOS 自带的是这些:
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
除开 Windows 的 cmd.exe,我最早接触终端是在 Linux 系统上,当时用的是 Ubuntu 桌面版。现在大多数人接触 PC 都是从桌面版带 GUI 的操作系统开始,所以相比之下命令行要显得稍微难操作一点。如果有读者朋友觉得命令行操作起来相对困难的话,可以参考著名的《鸟哥的Linux私房菜》这本书。作为入门读物还是非常容易上手的。
接下来我们假定读者朋友们都已经比较熟悉 Shell 操作了。目前多数类 Unix 系统的默认 Shell 都是 Bash
,它已经足够用了,但是还不够好用。
目前比较流行的 Shell 是 zsh
和 fish
。二者各有优劣,我个人使用的而是 zsh
。
ZSH 称为 Z shell,是基于 sh
(Bourne shell)的扩展,包括了 ksh
, Bash
和 tcsh
等多种 shell 的特性。今年 WWDC 2019 上苹果亦宣布将用 zsh 取代 bash 称为 macOS Catalina 的默认 shell。
zsh 的自动拼写纠错,大小写不敏感的自动补全,自带的 where
命令等都非常实用。在 macOS 上用 Bash 试图 cd down[Tab]
的人都应该有所体会。
zsh 还支持各种插件和扩展,开发者可以基于 zsh 实现各种酷炫的命令行体验。Oh My Zsh就是一个开源的项目,也是大多数 zsh 用户的选择。
超过 1350+ 的贡献者为这个项目贡献了 250+ 的插件和 125+ 的主题。
安装起来非常简单,通过 curl 或者按照官网指示安装即可:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
oh my zsh 自带的 git 插件简直是开发者的福音。
还有多款主题任君选择: Themes · robbyrussell/oh-my-zsh Wiki
在 shell 里进行文件夹路径变换我们用的是 cd
命令(change directory)。假如我们有一个层级比较深的路径: ~/Documents/ADir/BDir/CDir/DDir
。一般我们需要
cd ~ #或者 cd
cd Documents
cd ADir
cd BDir
cd CDir
cd DDir
这还是我能记得这个路径的前提下。一般情况下我只记得它大概在哪里,所以还得多次 ls
看看是不是在当前目录。
这时候你需要一个无论身处哪个路径都可以轻松跳转过去的 jump 操作。
j DDir
这就是 autojump
干的事情。只要 j keyword
就可以到达关键词所在的地方,都不需要记得完整的名字。
autojump
会对你曾经到达过的路径做一个缓存,然后自己计算一个优先级。如果有多个同名文件夹,它会优先匹配最高优先级的那个。如果你觉得这个优先级不对,你可以使用 j -i
或者 j -d
来增加/减少当前目录的权重。
oh my zsh 也提供一个类似效果的插件,叫做 z
。github 地址在这里: oh-my-zsh/plugins/z at master · robbyrussell/oh-my-zsh
oh my zsh 除了直接把当前 git 仓库的信息展示在终端之外,还自带许多方便的 git 命令的 aliases,比如:
Alias | Command |
---|---|
gaa | git add --all |
ggp | git push origin $(current_branch) |
这些 git 命令我们每天都需要打无数次,能用 alias 还是非常方便省事的。
完整的 aliases cheatsheet 可以参考这里: Cheatsheet · robbyrussell/oh-my-zsh Wiki
如果我们不做任何修改,登录 shell 之后的所有配置就是默认的。但是我们通常都需要安装各种工具,这些工具需要前置配置,比如环境变量 PATH
。这些东西都保存在 .profile
文件里。类 Unix 系统在登录 shell 的时候一般都会读取 .profile
文件。
如果你在自己的 Home 目录(~) ls -a
一下一般可以看到这几个文件:
.profile
.bash_profile
# 如果装了 zsh 的话
.zshrc
这几个文件的作用是类似的,但是读取顺序不同,其中 .zshrc
只会被 zsh 读取。关于这几个配置文件的顺序大家感兴趣的可以参考这里: .bash_profile vs .bashrc - Abhinav korpal - Medium
一般情况下我会在 Dropbox 里放一个 .bash_profile
文件,然后在多台 Mac 之间共享这个文件,只需使用 ln -s
在 Home 目录创建一个软链。
.bash_profile -> /Users/xxx/Dropbox/bash_profile
这个文件里面我们可以配置 shell 的 locale 信息,比如:
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
或者是 Go 的配置:
# Go
export GOPATH=$HOME
export GOPATH=$HOME/go
export GOBIN=$HOME/go/bin
或者是一些常用的但是比较长的命令的 alias:
alias jcs="codesign -dvvv --entitlements :-"
甚至可以写一个 shell 函数进来:
unproxy() {
unset http_proxy
unset https_proxy
echo "Proxy Unset."
}
这些写进 .profile
文件的东西在登录后,在任意路径下直接使用。把常用命令放进来是一个不错的选择。
通常情况下修改完 .profile
之后我们都需要 source
一下让它生效:
source ~/.profile
那么 source 命令和直接执行它有什么区别呢?感兴趣的读者朋友可以看看这一篇文章:Linux下source命令详解 - 在努力! - CSDN博客
简单来说就是使用 sh filename
与 ./filename
来执行脚本的时候,shell 本身会创建一个子 shell 来执行这个脚本。所以在子 shell 里的变量并不会影响到当前的这个父 shell。而 source
执行的时候,并不会创建子 shell 而是直接就在当前 shell 执行了,所以这里面什么 export
, alias
之类的东西就直接在当前 shell 生效了。
macOS 自带的 Terminal.app 已经足够好用,虽然默认是白色底的,字体也比较小,但是你可以在 Preferences 里面修改 Profiles 和字体。在 macOS Mojave 以上你还可以使用 Dark Mode 来让它变成黑色的。
不过还有比他更好用的终端 App — iTerm2。
iTerm2 有很多非常实用的 Feature,我最常用的有几个:
iTerm2 可自定义的外观项比 Terminal 的多,而且还挺酷炫的。最近更新的版本还可以在顶部加入 Status Bar 显示 CPU/Mem 以及当前路径的信息。虽然我不怎么用但是可以看到 iTerm2 的进化速度比 Terminal 快多了。一旦习惯了 iTerm2 的 UI 就回不去了。
实用的分屏功能
Terminal 虽然也自带分屏和 Tab,但是 iTerm2 可以通过 cmd+d
和 cmd+w
来新建/关闭当前分屏,通过 cmd+[
和 cmd+]
来左右切换分屏。当我需要多任务操作的时候非常有用。比如我在左边看着本地的目录,右边通过 ssh 登录服务器对着服务器的目录,两边做数据交换。
随时用全局快捷键呼出的 Hotkey Window
在 Preferences 里面选择 Keys -> HotKey -> Create a Dedicated Hotkey Window… 之后可以创建一个专门对应全局快捷键的终端窗口。按下自定义快捷键之后就会 slide in。虽然我自己用的不多但这是 iTerm2 挺受欢迎的一个特性。
实用的小细节
cmd
使用鼠标打开链接iTerm2 还有许多有用的小细节,在日常使用的时候不会觉得有什么了不起,但是当你到别人的机器上用什么都没改过的 Terminal 的时候忽然就发现:我擦,怎么这么难用?这就是好的设计应该有的感觉。
大部分终端 App 都会支持一些非常实用的快捷键操作。我们无论使用哪一个 App,只要是经常用的 App,经常用的动作,都应该学习使用快捷键。
在终端中我比较常用的几个快捷键有:
Key | Action |
---|---|
alt+left | 往左跳一个单词 |
alt+right | 往右跳一个单词 |
ctrl+w | 向左删掉一个单词 |
ctrl+u | 删掉一整行 |
ctrl+l | clear 整个终端的输出 |
cmd+enter | iTerm2 的全屏/取消全屏快捷键 |
不同的终端 App 设置的快捷键可能不一样但都大同小异,完整的 iTerm2 Cheat Sheet 在这里大家可以参考一下: iTerm2 Cheat Sheet - Kapeli
有一个叫做 CheatSheet 的 App 可以长按 ⌘ 来查看当前 App 的所有快捷键,不过体验并不是很好。一般我会选择 Google: App + Cheat Sheet 来获得该 App 的 Cheat Sheet 列表。
比如 Tower 就整理了一份不错的 Xcode Cheat Sheet 在这里: Xcode Cheat Sheet。对于 iOS 开发者来说,每天面对 Xcode 的时间贼多,不掌握点快捷键怎么可以呢?
欢迎大家留言或者邮件 [email protected] 分享你喜欢的效率工具或者效率技巧。
最近做了一次关于效率工具的小分享,工具类的东西,文章简介外加实际上手的效果要大于现场演讲,遂动此念以记之。
光阴荏苒,日月如梭。有限的时间与精力是每个人每天都要面对的问题。不同的人有不同的选择,绝大多数人在找到一个能用的方法之后就不会再费心思去寻找更加高效的途径。这大概是人类设计的缺陷,为了节能而紧闭窗户。
这个缺陷带来的后果就是本来就稀缺的时间与精力由于不采用更加高效的方法去解决问题而变得更加稀缺。
“macOS 效率系列”将介绍在 macOS 系统上实用的工具来帮助读者朋友们提高解决问题的效率。
工具只是表象,其背后是对高效的追求,是对重复机械劳动的不屑,是使用工具来进行自我增强。
1968 年斯坦利·库布里克执导的电影《2001太空漫遊》(2001: A Space Odyssey)是名留影史的佳作。其中有一幕是两拨原始的人猿部落为了争抢有限的水和食物等资源经常互相斗殴。这种情况下身体强壮的人猿就比较容易取胜。某天,一只身体瘦弱的人猿在巨兽的尸骨旁边捡到一根骨头。他尝试着敲击巨兽的头骨,发现坚硬的头骨居然能被打破——他发现了使用工具来自我增强的方法。于是他把这个想法分享给了部落的其他人猿。在下一次部落冲突的时候,手持巨兽骨头的人猿把对方打得屁滚尿流。这就是工具的力量。
我们在生活与工作中经常会遇到重复的机械劳动,有的人习惯了一直重复,有的人则选择使用工具或者制作工具,让工具和机器替自己去重复。
我想很多人其实并不是不想提升效率,只是不知如何下手,让我们通过"macOS 效率系列"抛砖引玉,希望能帮到想要高效工作的读者朋友们。
Windows 操作系统自带的窗口管理做得不错,支持鼠标拖拽吸附左右以及 Win + left
,Win + right
等快捷键。我们经常需要一边开着文本编辑器或者其他工具,另一边开着浏览器查资料。这种时候左右窗口布局就是非常好的辅助。
macOS 系统原生并未支持此项功能,但是有不少优秀的 App 可以实现“窗口管理”(Window Managment)。
官网: Magnet – Window manager for Mac
Magnet for Mac 可以实现像 Windows 操作系统一样的体验,把窗口拖拽到左右边缘即可吸附并放大填满半个屏幕。同时也支持多个快捷键和多种布局,比如上下布局和四格布局。
Magnet 是我曾经常用的窗口管理工具,但是向上拖动把窗口放大的时候经常触发 macOS 自己的多 workspace 预览功能,有点烦,后来改用 Hammerspoon 就没再使用这个 App 了。
可以在 Mac App Store 购买
Many Tricks 出品的窗口管理工具。
特色是当鼠标在窗口左上角红绿灯那里悬停的时候可以选择左右上下的自动贴边布局。
同时也支持快捷键操作,也支持自定义布局。
价格 $10,可以在官网购买和下载体验版本。
Slate 是一个开源项目,GitHub 地址: jigish/slate: A window management application (replacement for Divvy/SizeUp/ShiftIt)
Slate 基本上没什么 UI,所有的自定义通过配置文件来实现,默认的配置文件在GitHub这里。
可以在 GitHub Page 上直接下载 .dmg或者下载 .tar.gz文件。
配置文件的格式大概是这样的:
# Push Bindings
bind right:ctrl;cmd push right bar-resize:screenSizeX/3
bind left:ctrl;cmd push left bar-resize:screenSizeX/3
bind up:ctrl;cmd push up bar-resize:screenSizeY/2
bind down:ctrl;cmd push down bar-resize:screenSizeY/2
同时 Slate 还支持用 JS 文件来实现更加动态和复杂的配置,只需创建 ~/.slate.js
即可。
JS 配置文件的语法与文档可以参考这里。
官网: http://www.hammerspoon.org/
GitHub 地址: https://github.com/Hammerspoon/hammerspoon
Hammerspoon 是我目前在使用的工具,它其实是一个自动化工具,可以做的事情非常多,窗口管理只是其中的一个。
Hammerspoon 本身是跑在 macOS 上的一个 App,通过 Lua 虚拟机可以运行 Lua 脚本。用户通过 Lua 脚本和 Hammerspoon App 之间进行通信。Hammerspoon 提供了许多系统能力,以 Lua API 的形式暴露给用户脚本层。
Hammerspoon 本身是开源的的,现在也有许多基于 Hammerspoon API 实现的开源组件可供调用,所以我们只需短短几行代码,就可以实现非常酷炫的窗口布局。
local tiling = require "hs.tiling" local hotkey = require "hs.hotkey"
hotkey.bind({"ctrl", "alt"}, "h", function() tiling.cycleLayout() end) tiling.set('layouts', { 'gp-vertical', 'columns' })
可以通过官网下载安装,然后创建初始化脚本 ~/.hammerspoon/init.lua
。参考一下官网的Getting Started文档和Hammerspoon Docs,就可以愉快地实现自动化了。
工具只是表象,最重要的其实是寻找高效方法的思维方式。现在有不少社区或者自媒体会分享各种效率工具,想要找到这些东西并不难,本系列不过总结一二,希望能对读者有所帮助。
主播: 徐涛
嘉宾: 钟颖 | 枫影 Justin Yan
Apple WWDC 2019 于美国时间 6 月 3 日在 San Jose 举办。今年我有幸以 Developer 的身份到 WWDC 现场参加。2016 年我曾经参加过一次不过那时候只是在这边出差顺便去看了一眼。
今年苹果诚意满满,不仅在硬件上给出了性能怪兽,价格突破天际的 Mac Pro,还带来了 UIKit for Mac 以及跨(Apple)平台的 SwiftUI 等多项让开发者非常惊喜的技术。
这次在湾区我见了几位老朋友也认识了一些新朋友。朋友 Louis 跟我说想介绍我给《声东击西》的主播,我可是《声东击西》的听众啊😂。于是非常荣幸地做客播客《硅谷早知道》节目,和同来参加 WWDC 的国内知名 iOS 开发者钟颖一起录制了一期节目,从开发者的角度谈谈今年 WWDC 的一些看法。
今天早上(2019-04-16)各大社交平台都在发巴黎圣母院大火的事情。很多人在微信朋友圈发自己以前去巴黎圣母院时拍下的照片,微博也有 #我和巴黎圣母院# 这样的话题供大家发自拍。
我刚看到第一个发照片时有些不明所以,但是看到多个人都在发巴黎圣母院的时候,我第一时间 Google 了一下相关新闻,才知道圣母院大火的事情。这让我想起去年 9 月巴西国家博物馆的火灾。
巴西国家博物馆的主体建筑有 200 年的历史,曾是葡萄牙王室的行宫。1889 年新成立的共和政府将其改造成博物馆,并向普通民众开放。馆藏据说有 2000 万件,包括有上万年历史的南美最早人骨化石“卢西亚”和世界上最大的陨石——渥拉斯顿环形山陨石等非常珍贵的藏品。播客“博物志”也对这场灾难做了一期节目:#121. 「这块陨石以后就是巴西国宝了。」 — 博物志。我就是从这期节目知道这场灾难的。
但是显然去年的这场灾难和今天发生的巴黎圣母院相比,热度完全不可同日而语。今天我在做纸笔书写的 FWP 思维练习时(参见此文)自然地写到了相关的思考。我是通过微信朋友圈、Twitter、微博等社交平台知道这件事情的,这是社交平台最大的特点:对于有一定规模的大事件,传播速度极快。但是除此之外呢?Social Media 几乎给不出多少有效的信息。像是火势多大,造成的损失几何,火灾的原因等等。这些专业的分析是需要专家来做,由权威来发布的。而社交平台上极少有个体有能力可以到这点。这是理所当然的事情,毕竟绝大多数人都只是普通人,这也是我们分工合作的社会的基础。
充斥在社交平台上的“我和圣母院”的自拍让我颇感兴趣,他们发自拍的意义是什么?我觉得可以从几个角度来看:
经济学的基础是“稀缺”,上述三点事实上归根结底都是在表达一个“稀缺性”,是一种对自己拥有“稀缺资源的炫耀”。怎么说?
虽然今天中国出境游的人数在逐年递增。在 2018 年中国出境游达到 1.4 亿人次,其中去法国的大约是 230 万人次。(注意:单位是“人次”而不是“人数”,数据参考文章底部链接。)假设这个单位是人数吧,也就是 230 万人没有重复的,那就是大约一千个人里面有一个人去了法国(而且不一定去了巴黎)。这里只讨论 2018 年一年的,假设十年内去法国的人完全不重复,并且过去十年每年都是 230 万人去(实际上越早时间人次越低),那么撑死也就是每一百个人里有一个人在过去十年去过法国。
这样的人数放在中国的总人口来说依然是少数。所以“去巴黎旅行”这件事情在中国依然是一种“稀缺性资源”,而当时留下的照片就是自己“拥有稀缺资源”的证据。今天正好有这么一件事情,确实是一个好时机对自己的社交圈进行一次广播,提升一下社交印象分。
有爱人设的塑造
如果只是普通的旅行照片,那炫耀出来的仅仅是“此时此刻我在哪里”的稀缺性,但在今天发出来却可以配上三两句话表达一下“惋惜”之情。而这种“惋惜”是建立在“我知道巴黎圣母院有多厉害”的基础之上的。
这就比“我去过巴黎圣母院”要更进一步了。毕竟了解一座古老建筑物的历史,馆藏,在人类社会的地位等等这些额外信息,都是需要付出成本的。虽然普通人没法像高晓松一样对着摄像头一侃就是俩小时,但是发两句简单的漂亮话还是可以做到的。这其实是一种成本极低的人设塑造,而人设塑造为什么重要呢?就在于“有爱”、“有文化”也是一种“稀缺资源”。
事实上发一条朋友圈或者微博,对远在地球另一端的一场灾难表达一下爱心,可能就是一个人能做到的最大的“有爱”了。法国总统马克龙现在表示要对全世界筹款重建圣母院,在朋友圈里表示痛心疾首的人群中,又会有多少人会主动去捐款呢?
这正好是我最近所读的《薛兆丰的经济学讲义》一书中讨论过的一个例子,即人的爱心是非常有限的,这是一个客观事实。而人类社会又是紧密联系互相依赖的,那么这时候如果让人类社会跨域有限的爱心来互相帮助呢?答案是“市场”。所以很难说马克龙的纯粹“慈善募捐”能取得多大成效。假如这场“筹款”并不是一种募捐而是一种市场行为,做个不恰当的比喻:募捐最多的企业可以获得圣母院塔尖大 LOGO 的品牌露出之类的,那么也许会有更好的募捐效果也不一定。
蹭热点蹭热度
对于微信公众号、微博大 V 之类的靠流量卖钱的人或者机构来说,流量即收入。现在有个天降热点,那当然不可暴殄天物,不仅要蹭,而且要蹭得精彩,蹭得高明,毕竟互联网时代群众的注意力极易被转移,热点就是一种时间上的稀缺性资源。况且像“圣母院大火”这样的热点,就是个非常容易往正面形象走的一个命题作文,只要中规中矩,就不会制造出负面文章。而自媒体如果想从这么多批量制造的文章中脱颖而出,可能就得写一些与众不同的观点出来。制造与众不同的过程,也是在制造自己文章的稀缺性。
以前我们在聊郑也夫的《后物欲时代的来临》一书时曾经说过消费主义社会通过堆砌物质,或曰资源来彰显自己的能力。其实拥有大量优质的物质也是一种“稀缺性”,毕竟优质即稀缺,能够拥有大量优质物品的人当然是稀缺的。
所以上面写了这么多关于发自拍,蹭热度之类的观点,好像我是在说这些东西不好,这些东西没有价值。其实不是。如果大家发朋友圈发微博没有任何好处,无论这个好处是炫耀也好,自我满足也好,人设塑造也好,只要没有适当的激励那就不会有人去发,我也就看不到这条消息,也就不知道原来发生了这么大一件事情。所以从信息触达的角度来看,当然是一件好事,但是对于信息传播过中信噪比来说就不一定了,毕竟从这么多人的自拍中想要找到有效信息的成本还是挺高的。所以从信息接收者来说,大量的自拍显然不是一种“优质信息”。
对于大多数发图的人来说,有机会发一发陈年自拍,接受一些赞和围观,满足了这些心理需求就已经挺好了。但是如果发表的人能够发出“对接收者来说更有价值”的信息,是否会更好呢?根据我对薛兆丰的经济学科普的理解,我觉得绝大部分发表者是不会发出比现在这些“更有价值”的东西的,那些更有价值的东西会由专家来发布。这是一个客观的常态,因为“有价值的东西”本身就是一种“稀缺的东西”。
对我来说,我通过朋友圈知道这件事情,那就已经足够了,剩下的信息我会通过其他渠道来获取,比如专业的新闻稿,比如博物志播客的评论等等。
前几天写完上述文字之后我没有立刻发布,因为我并不知道是否要提及“做到更好”。首先我得定义什么是“更好”,而一旦我去定义这个词,我就发现这实际上就是一种“稀缺”资源。而“稀缺”本身就是一种大众所不具备的东西,所以似乎并没有必要去“做到更好”。
但其实这个逻辑是错误的,是因果倒置的。我们不应该因为“稀缺”而不去做,反而是很难做到所以才“稀缺”。
未来的社会应当是会随着人们的认知水平,教育水平的普遍提升而逐步改善的。“发表无用信息”来满足自己的炫耀心理需求的行为会随着时间的推移而逐渐减少,就好像蛇精的照片会随着大众越来越不买账而逐步减少一样。不过根据我的观察,现在是美颜水平变高了,让修图后的人更加接近自然人,但是加上极重美颜的照片已经充斥各大社交平台,说明重美颜依然有其市场,目前无法识别重美颜或者不关心是否美颜的人还是居多。
今天我看到网络上有关于“如何看待朋友圈发圣母院合照的行为”之类的讨论,有人在批判发照片的行为,也有人在为发照片的行为正名。双方的措辞都稍显激烈。
我想起《薛兆丰的经济学讲义》的前言,作者说:
它助你变得更理性、悦纳和进取。你将学会把愿望和结果分开来评判(理性);你将学会先去探究现象背后的原因,而不是动不动就抱怨和指责(悦纳);你将忘记经济学家们津津乐道的均衡世界,而着迷于由创新精神牵引的非均衡的开放社会(进取)。
我在看到朋友圈里充斥这些照片的时候是有感到不舒服的,但由于最近一直在读这本经济学的科普,我很自然地就想要去分析这种“不舒服”背后的原因。
做事从容应对是一个表象而不是一个人的品质或特性,而是由于此人有足够的能力解决他需要面对的问题。同样的,能够宽容待人也不是一个人的品质或特性,而是因为此人足够理解他所面对的不符合预期的事情背后的原因。
读《薛兆丰的经济学讲义》并不能让我成为一名经济学专家,但是我非常喜欢作者笔下的经济学那种反直觉的思维方式。能够采用不同的角度来看待同一件事情,我们就可以用不同的结论来反思同一件事情,也就能够理解不同的人,能够审视不同的结论。
我们在生活中会遇到很多不如意的事情,不符合预期的事情。遇到这些事情会让我们产生负面情绪。如果仅仅停留在负面情绪里我们是得不到进步和解脱的,追求表面的“宽容”也是没有意义的。惟有采用多元的思考,理解事物背后的原因,才有可能辨别真伪,寻找问题的解决之道。这件事情说起来容易做起来难,但是一个人如果不做难的事情,那他就会一直在原地踏步,我想喜欢原地踏步的人应该不会很多。
2019.04.16 - 04.18
于自居
推荐使用泛用型播客客户端搜索“枫言枫语”来订阅收听本节目。我们也在国内的荔枝FM和喜马拉雅有同步音源。
这个世界缺乏诗意。
这个表述不够精确,应该是我自己和我观测范围内的我眼中的世界,看上去缺乏诗意。不过一旦我犹豫表述是否精确时,我便已失去诗意。
最近读起诗人廖伟棠的诗集《春盏》。我先是听了他在《看理想》上的电台节目——《诗意:关于新诗的三十种注脚》(截至本文写作之时,节目尚未连载结束)。我听了前九集,颇有感慨。到底是什么时候开始,我的世界,和我观测范围内的,我眼中的世界,开始缺乏诗意了呢?
2008 年以前我写诗,那时候我在上学。
学校是压抑苦闷的地方,囚禁着无数涌动炽烈的青春。那时的月亮大到从十五的窗前逃逸,吴刚的斧子在诗句间清晰可辨;现在的月亮被吞没在城市的夜晚,如晨间的白雾四散,霓虹荡漾的高塔取代斜阳的浪漫。
每个人手上都有一部手机,每个人的眼神迷离,不同的 AI 在远端推送不同的内容给不同的大脑,吸引我们不停地看下去。我想起曾经被妖魔化的电视机,如今已成为一个时代的缩影。
为什么我忘记了曾经的我写诗,为什么我停在十字路口,一袭白裙踏雨而来可我却无法穿越车窗,握住冰冷的伞柄?斑马线上匆匆的脚步声像迁徙的野牛群,我坐在车里悼念不知所踪的诗意。
吾乡
黄昏中她微倦。
吾乡在珠江以西
像一个小农妇,为傍晚莫名伤感,
说着一些别人无从意会的语言。
她那些清丽,已经难以分辨
是九十年代的新兴,还是二十年代的旧情。
可是我的名字就叫做新兴呵,她的蓝花小襟,
她的晚云揉碎了荡漾。
她准备晚饭,已经做不出更多新奇口味,
而水未沸腾前她尤独倚门,
向隆隆的未来索一把小葱。
吾乡吾乡,那些鸟铳倭刀我全卖掉,
梦中涨涌的大雾如酒,吃光了我的马头。
我是牵牛人还是蕉红花耶?
借月光抱住了她白细的肩头。2011.1.14 返乡(广东新兴县)途中
诗人廖伟棠的故乡在广东,在《看理想》的节目中他用粤语念诗一下就吸引了我。我作为一个潮汕人,虽然粤语说得不标准但是听着格外亲切,像儿时在外婆家吹着夏风听着 TVB 电视般亲切。相比起现代国语来说,粤语和潮汕话与古汉语的关系要更加紧密,许多古诗词的韵脚非得用古汉语来读才能押韵。比如这首刘禹锡的《竹枝词》:
杨柳青青江水平,
闻郎江上踏歌声。
东边日出西边雨,
道是无晴却有晴。
“平”字和“声”字在粤语中是同一个韵母,但在现代汉语里面已经不是了。最早的诗歌是能歌的,韵律对诗来说是十分重要的。于是听诗人用更靠近古汉语的语言读诗,仿佛一下穿越了几个世纪,那种恍惚的隔离感,要比现实与诗意的差异来得更加强烈。据说诗人廖伟棠很早就在北大旁的万圣书园用粤语念诗了。
他现在与家人住在香港,摄影与写诗。
《春盏》是廖伟棠 1996 - 2015 的诗选。有一些诗歌很有趣,有一些诗歌很有距离。但是总得来说非常好读也非常动人,我很喜欢诗人成熟的写作技巧,也很喜欢那种沉稳中带着悲凉的意味,比如《一九八三年夏天》最后一节:
一九八三年夏天,寂静的村庄神色黯然
在黑暗中仿佛有雨水滴落我的双手
我,一个夜了还站在门外的男孩
凝望着黑暗,突然听见了远方山神的歌唱
有的诗我很欣赏其中的一句:
而我,我怀抱着写给你的信,在人群中走过,
像一个被抛弃的女子,不知道有雨点落在自己头上。
这句来自《乡间来信》组诗的《第四封》。当然诗歌不可断章取义,诗歌不可只读金句。可以说这些片段是诗歌的亮点,做个不恰当的比喻,像流行歌的副歌部分。但是即使是流行歌,也不会只有副歌,一定要整首歌听才会完整。诗也是一样的。比如北岛的两句诗:
卑鄙是卑鄙者的通行证,
高尚是高尚者的墓志铭。
是非常有名了。但是只知道这两句诗是不完整的,一定要读一下《回答》全诗,才能体会到“我——不——相——信!”四个字的战斗意味。
本诗选的作品多写爱情主题,很多是写给妻子诗人曹疏影的,也有写给孩子的诗。另外也有乡土的诗歌,也有旅行时异国风情的诗歌。毕竟时间跨度较大,整部诗集收录的作品里,主题和写作手法多样,有些我很喜欢,比如《乡间来信》这组诗,有些我不太感冒,比如西藏主题的几首。每个人的主观喜好不同,但应该都会在这部诗集里找到喜欢的。
写到这里我在想:今天看起来好像非常高雅非常文艺的写作这个职业,在以前也许曾经是非常普通的赚钱养家的工作。这两天我读《对撼法律》这本书,里面xxx提到担心唱片业未来会和电影业一样,变成商业片当道的境况,再也没有人去做出好音乐了。似乎“商业”成了一切美好事物的罪恶的尽头。电影从艺术,从实验,变成商业变成流量骗钱,唱片从创作从音乐,变成搞笑变成口水歌赚钱。钱是这个时代的无法绕过的一个东西。在过去的人类历史上,钱一直都很重要,但是像今天这样以流水线生产为主流的社会结构里,钱的结果使越来越多的人们被送进工厂拧螺丝,工作赚钱和生活体验的分歧越来越大。
工业革命以后,人类整体的社会生产力大发展,但是个体的重要性却越来越低。具体到互联网这个行业里,能够通过流水线工业化整个生产过程的公司,才能在目前的市场中占据有利地位。而流水线意味着抹平差异,流水线意味着头部的脑袋下达决策,底层的搬砖工只负责搬砖。在这样的过程里,甚至要刻意消除搬砖工与头部决策的差异,以达到整体效率的最大化。显然,这是一种对“个性”非常不友好的流程。
而诗意,是需要进入个人的世界,和个人的内心交换柔软的部分,互相抚慰伤痕,舔舐新生的鹿角,走进黑夜的柔波的。当生活从“做自己喜欢的事情顺便养活自己”变成了“去大工厂流水线搬砖养活自己然后再好好休息体验生活的美好”时,生活可能就不那么容易美好了。
想要看到天堂,先得扎根地狱。
昨天看到 YouTube 上的一个纪录短片,主角是一位住在日本的 B 站 UP 主。她白天在日本公司上班,我脑中浮现的是我对日本公司的刻板印象:十分压抑,极度准时,等级森严。主角下班后脸上的表情当然也不可能是非常阳光的,但是当她谈起在 B 站拍视频的时候却是眉飞色舞的。有一个日本的讽刺漫画是把人比作一个电池,塞进名为公司的电池盒子里,为公司发电,用完即扔,题为“社畜电池”。在日本,公司的汉字是“会社”,“社畜”就是对“上班族”的一种比较极端的调侃。
在这样的一个社会主流大背景下,每天被自己不乐意做的“赚钱养家”的事情掏空了身体后的社畜们,下班后自然也不会望月生情,把盏吟诗了。
这位 B 站 UP 主愿意凌晨 4 点半起床录视频然后再去上班并不是她“非常强大”可以强迫自己做普通人不愿意做的事情,而是因为她扎根于“上班”的现实,录视频这件事情是“快乐的事情”。如果早上起来录视频很快乐,那么当然会有足够的动力克服睡觉的吸引力了。
人类是需要目标的,人类是害怕孤独的,人类不是纯粹理性的,人类是有七情六欲的。
人类是复杂的。
我们之所以讨论理性大概是因为理性是可讨论的。但是人类并不是纯粹理性的。廖伟棠将本作名为“情诗集”,“不只是标明此选本以爱情诗为主,而是我突然想明白了:所有的好诗都是情诗。”人类的情感的部分是温软而美好的,是不应该被工业化的冰冷而冻结的。
今天早上我在手机上浏览 Instagram 和 YouTube 的时候突然意识到这些内容提供商的“服务”与微信、抖音并无二致——它们都在利用我的弱点,吸引我在上面消耗大量的时间,而这些时间换来的却往往是虚无。内容服务产品可以利用每个使用者的使用习惯来建立适合不同用户的内容推荐,只要抓住你的兴趣点,你很难不陷进去。社交产品则利用的是人类的共同弱点:人类害怕孤独。从这个层面上,能够让人类不孤独的产品是具有积极意义的,但是利用人类喜欢群居害怕独处的弱点让用户沉沦则无疑是个陷阱。
这个世界有很多陷阱。我想起电影《Wall-E》中,乘坐飞船的胖人类们,出行全靠飞行躺椅,沟通使用电子屏幕,整个社会由机器人来负责生产、清洁、服务、甚至决策的场景。AI 毫无疑问在今天越来越重要,但就像链式反应能力一样,既可以用于原子反应堆发电服务人类,也可以用于原子弹毁灭地球。技术是中立的,全看用的人而已。
作为一个身在功利主义、实用主义、理性主义盛行的世界里的渺小人类,诗意是我仰望夜空时得以用想象穿越城市的灯火,穿越十字路口溅落的雨滴,穿越迁徙的匆匆脚步,拥抱黑暗与希望的火炬。
2019.04.06/下午
于自居