如何创建插入时间戳的选项?

如何创建插入时间戳的选项?

在编辑文本文档时,我需要经常添加时间戳。我想过用两种不同的方法来实现自动化。但似乎都不起作用。

  1. 使用 nautilus-actions

我设置了一个新的右上下文操作来运行命令date|xclip

在此处输入图片描述

当我在其他应用程序(例如终端或浏览器)中单击鼠标右键时,此右上下文不会显示。此外,当它出现并单击它时,它不会执行任何操作。

  1. 使用键盘快捷键

我设置了一个新的键盘快捷键,它应该执行date命令但却没有执行。

在此处输入图片描述

有什么指点吗?

谢谢。

答案1

GNOME 键盘快捷键应该可以工作。

这就是您尝试的方法不起作用的原因:您的键盘快捷键运行了命令date,但对输出没有任何作用(输出被丢弃)。您应该将其通过管道传输到xclip,以便date | xclip将其复制到 X 选择(不是剪贴板)。然后您可以通过单击鼠标中键将其粘贴到您的文档中。如果您希望能够使用 Ctrl-V,请使用将date | xclip -selection c其复制到实际剪贴板。

另一种方法是使用xdotool直接在文档中输入日期。分配给您的快捷方式

xdotool type "$(date)"

然后,当您按下快捷键时,它将计算当前日期并将其字符输入到您的文档中。

对于 ISO 8601 格式,使用xdotool type "$(date --rfc-3339=s)"


如果不起作用:由于这些是 shell 命令(而不是可执行文件),因此bash在快捷方式中指定它们时,您可能必须将命令传递给。您的命令将是:

bash -c 'xdotool type "$(date --rfc-3339=s)"'

答案2

我已经成功将其用作分配给的自定义键盘快捷键Ctrl+Shift+D

bash -c 'sleep 0.3 && xdotool type "$(date -u +%Y-%m-%d_%H:%M:%SZ)"'

我发现增加一点延迟就可以解决缺少首字母字符的问题,并且不会污染我的剪贴板。

请注意,我使用的是 RFC 3339/ISO 8601 格式的稍微定制的版本:我经常在想要避免dateRFC 3339 输出中的空格的情况下使用它,但我发现T将日期与 ISO 8601 时间戳中的时间分开的符号相当不直观且难以阅读,所以我发现下划线效果很好。

答案3

bash -c 'xdotool keyup super && xdotool type "$(date +%Y.%m.%d)"'

我使用Super+Q作为快捷方式,我需要super在发送 之前清除修饰符date。我试过了--clearmodifiers,但这会导致unity dash在运行快捷方式后弹出 [1]

unity dash[1]随后会出现一个原因,即在super恢复之前,如果--clearmodifiers使用man xdotool

CLEARMODIFIERS
       Any command taking the --clearmodifiers flag will attempt to clear any
       active input modifiers during the command and restore them afterwards.

相关内容