我正在尝试编写一个使用当前日期创建文件的emacs函数。我是emacs的新手,因此我遇到了变量和语法方面的问题。这就是我所拥有的:
(defun daily ()
(interactive)
(let daily-name (format-time-string "%T"))
(find-file (daily-name)))
我不明白emacs如何使用变量足以让它将时间字符串设置为变量并将该变量提供给find-file函数。任何帮助表示赞赏。
答案 0 :(得分:3)
以别人的意见为基础:
(defun daily-tex-file ()
(interactive)
(let ((daily-name (format-time-string "%Y-%m-%d")))
(find-file (expand-file-name (concat "~/" daily-name ".tex")))))
主要差异:
~/
) - 如果你不这样做,你将获得整个地方的文件,具体取决于你调用函数时当前的工作目录是什么答案 1 :(得分:1)
(defun daily ()
(interactive)
(let ((daily-name (format-time-string "%T")))
(find-file (format "%s.tex" daily-name))))
现在拨打M-x daily
会打开一个文件“12:34:56.tex”。
答案 2 :(得分:1)
(defun daily ()
(interactive)
(let ((daily-name (format-time-string "%T")))
(find-file (concat daily-name ".tex"))))
答案 3 :(得分:0)
某些地方的括号太少,而其他地方的括号太少。这是您的功能的更正版本:
(defun daily ()
(interactive)
(let ((daily-name (format-time-string "%T")))
(find-file daily-name)))
特别注意表达式(daily-name)
试图通过该名称调用函数;要访问变量daily-name
的值,只需单独编写其名称,不带括号。
另请注意,在这种特殊情况下,您可以完全不使用变量:
(defun daily ()
(interactive)
(find-file (format-time-string "%T")))