利用键盘快捷键插入日期

效率

太长;不看

今天看到一篇讲述命名文件方法的文章,讲述在文件创建之初,我们应采用系统化命名,为以后搜索节省时间。里面提到,文件名开头添加日期时间,有不少好处。

我就想,有没有方法能将这个添加日期的过程自动化?减少工作中的负担。毕竟现在流行「减负」嘛。随即我想到利用 macOS 自带的 Automator。

只需输入快捷键,立刻插入自定义的日期格式:

我尝试过使用 Automator (自动操作) 里的 Workflow (工作流程),都会因为 macOS 在这几年加入的安全机制,弹出「Automator is not allowed to send keystrokes 不允许发送按键」警告。

只有使用 Automator 里的 Quick Action 才能避开各种系统限制。

  1. 打开 macOS 自带的 Automator 「自动操作」,创建 Quick Action 快速操作。
  2. 修改 Shell 脚本
  3. 设置键盘快捷键

1️⃣ 设置 Automator

打开苹果「自动操作」,选择「快速操作」。

点快速操作

分类选「使用工具」,双击「运行 Shell 脚本」。

选择运行 Shell 脚本

根据你希望输出的格式,选择填入不同的命令。以下我给出几个常用例子,读者随意按照需求修改。

按照原文给出的例子:

样式 形如 命令代码 宽松|严格
YYYY-MM-DD 2021-10-27 date +"%Y-%m-%d" 宽松
YYYY-MM 2021-10 date +"%Y-%m" 宽松
YYYY 2021 date +"%Y" 宽松
YYYYMMDD 20211027 date +"%Y%m%d" 严格
YYYYMMDD-HHMMSS 20211027-153654 date +"%Y%m%d-%H%M%S" 严格

还可以填入自定义文本以及日期格式。比如,我想输出「今天日期是: 2021_10_27」,代码则是 date +"今天日期是: %Y_%m_%d"

样式 形如 命令代码
年_月_日 2021_07_11 date +"%Y_%m_%d"
年月日 小时:分钟 20210711 11:51 date +"%Y%m%d %H:%M"
ISO 8601 日期 2021-10-27T07:13:25Z date -u +"%Y-%m-%dT%H:%M:%SZ"

工作流接收「没有输入」。在「用输出内容替换所选文本」 里打钩 ☑️,不然在最终效果里不会插入日期。

Shell 选择 /bin/bash。按照你的需求,在命令行代码栏填入刚才说到的命令代码。

设置参数

点击结果,然后运行,能查看自己的脚本是否如预期那样输出。

运行结果

一切完成后,存储这个快速操作。

存储

2️⃣ 键盘快捷键

打开系统设定—键盘—快捷键,在服务里,能找到文本分类,里面有刚才保存的快速操作文件名。

系统设定—键盘—快捷键

设置你希望的快捷键。

设置快捷键

✅ 完成!在系统任意文本框都能通过快捷键,输入希望的日期格式。还能为多种格式(长日期、短日期)创建 Quick Action 文档,映射到不同快捷键。按照需求,敲下相应快捷键就行。

参考

  • Andrew Swift 在问题「How to automatically paste today’s date with keyboard shortcut?」的答案