Emacs Org模式中的自定义时间戳

5

我想在emacs orgmode中以自定义格式插入时间戳。 我希望只插入当前时间(不包括日期!)并且格式为[HH:MM],通过按下C-c -键实现。 我完全是lisp的新手,无法弄清楚如何做到这一点。我的~/.emacs文件的起点如下:

(defun org-my-custom-timestamp ()
  (interactive)
  ( :SOME_CODE: )
)


(define-key global-map "\C-c-" 'org-my-custom-timestamp)

现在这只是我自定义函数 org-my-custom-timestamp 的定义,还有“interactivation”和快捷方式分配。 然而,我已经尝试了各种方法来尝试:SOME_CODE:而没有任何成功的结果。
如何修改该函数,使其按照所描述的方式工作?
是否有经验丰富的 Emacs 用户认为这种方法实用,或者是否有更聪明的方法?也许在 org-mode 内部?
1个回答

6

Org模式的本地键映射有一个绑定C-c -的条目,因此我们需要更改它而不是全局键映射:

(defun org-my-custom-timestamp ()
  (interactive)
  (insert (format-time-string "[%H:%M]")))
(add-hook 'org-mode-hook
          (lambda ()
            (local-set-key "\C-c-" 'org-my-custom-timestamp)))

请注意,它替换了Org模式中默认绑定为C-c -org-ctrl-c-minus命令。

你可以使用自己的命令来代替它。


非常感谢!上面的代码片段运行良好,正是我所需要的!由于这个绑定会覆盖 org-mode 的一个功能,我决定为这个命令找到另一个快捷方式。 - Edward

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接