在 macOS 上实现粘贴时自动将 date 替换为当前日期的方法,可以通过结合 Automator 和系统自带的快捷键功能来实现,无需额外成本。以下是详细步骤:

步骤概览

  1. 新建一个「自动操作」(旧称 Service)。
  2. 让它 读取剪贴板内容用当前日期替换 date写回剪贴板
  3. 给这条快速操作 绑定全局快捷键(例如 ⌃⌥⌘V)。
  4. 使用时 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 的「服务」只能操作 已有的剪贴板内容,所以需要先把目标文字放到剪贴板。

标签: none

评论已关闭