emacs orgmode中的自定义时间戳

时间:2012-08-07 12:00:26

标签: emacs timestamp elisp org-mode

我想在 emacs orgmode 中以自定义格式插入时间戳。我想通过按C-c -以这种形式插入当前时间(没有日期!):[HH:MM]。我是lisp的新手,无法弄清楚如何做到这一点。 我的~/.emacs文件的起点是这样的:

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


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

现在这只是我的自定义函数org-my-custom-timestamp的定义,“交互”和快捷方式分配。 但是我为:SOME_CODE:尝试了各种各样的事情而没有任何成功。

可以在功能中使用什么来使其以所描述的方式工作?

是否有经验丰富的emacs用户甚至会考虑这种方式来解决它的实际问题,还是有更智能的方法来实现它?也许org-mode-internal?

1 个答案:

答案 0 :(得分:5)

组织模式的本地键映射有一个绑定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-ctrl-c-minus命令,默认情况下,在Org模式下绑定到C-c -,并使用您自己的命令。