macOS 上实现粘贴时自动替换 date 为当前日期的方法
在 macOS 上实现粘贴时自动将 date 替换为当前日期的方法,可以通过结合 Automator 和系统自带的快捷键功能来实现,无需额外成本。以下是详细步骤:
步骤概览
- 新建一个「自动操作」(旧称 Service)。
- 让它 读取剪贴板内容 → 用当前日期替换
date→ 写回剪贴板。 - 给这条快速操作 绑定全局快捷键(例如
⌃⌥⌘V)。 - 使用时 把
Create@Passwd&linux##date!复制 → 按快捷键 → 立刻得到Create@Passwd&linux##2025‑04‑07 23:59!(或自定义格式)。
详细操作
1. 创建「快速操作」
- 打开 自动操作(
⌘Space→ “自动操作”)。 - 选择 「新建文稿」 → 「快速操作」。
- 顶部「工作流接受当前」保持默认 「无输入」,「在任何应用程序」。
2. 添加脚本动作
- 在左侧搜索框输入 “Shell”,把它拖到右侧工作区。
- 将 Shell 设为
/bin/zsh(或/bin/bash,本人用 zsh)。 - 将 输入传递 设为 “作为自变量”(不影响实际逻辑)。
- 把下面的脚本粘进去(可以自行修改日期格式):
#!/usr/bin/env bash
# ---- 配置 ----
# 想要的日期格式(使用 `date` 的 +FORMAT 语法)
# %Y 年(4位) %m 月(01‑12) %d 日(01‑31)
# %H 小时(00‑23) %M 分 %S 秒
DATE_FORMAT="%Y-%m-%d %H:%M" # 示例:2025-04-07 23:59
# ----------------
# 读取剪贴板
clipboard=$(pbpaste)
# 替换所有出现的 date 为当前日期
current_date=$(date +"$DATE_FORMAT")
new_clipboard="${clipboard//date/$current_date}"
# 写回剪贴板
printf "%s" "$new_clipboard" | pbcopy[小技巧]
- 想要 时间(例如
2025‑04‑07 14:23),把DATE_FORMAT="%Y-%m-%d %H:%M"。 - 如果想要 不同的占位符(比如
{{date}}),把脚本里date换成相应的正则。
3. 保存
- 按
⌘S,命名为 「Paste‑DateReplace」(任意),会自动保存在~/Library/Services/。
4. 给它分配全局快捷键
- 打开 系统设置 → 键盘 → 快捷键 → 服务(或「系统设置」里搜「快捷键」→「服务」)。
- 往下滚动到 「通用」 分组,你会看到刚才保存的 「Paste‑DateReplace」。
- 勾选它,然后点右侧出现的 “添加快捷键”,例如
⌘V(Cmd+B)。 - 关闭设置。
5. 使用方式
- 复制
Create@Passwd&linux##date!(或任何包含##date!的文字)。 - 按下刚才设的快捷键(如
⌘B)。 - 粘贴(
⌘V)即可得到类似Create@Passwd&linux##2025‑04‑07 23:59!的结果。
[常见问题解答]
为什么要两步(复制 → 快捷键)而不是一次性粘贴?
macOS 的「服务」只能操作 已有的剪贴板内容,所以需要先把目标文字放到剪贴板。
评论已关闭