3

我正在编写一个简单的 hacky 解决方案来在 DesktopAid 之上的«项目»(缓冲区和框架集(X 窗口))之间切换。我做了一个程序来编写一个项目文件:

(defun project-save-as (project-filename)
  "Save the current session to a new project session file."
  (interactive "FProject file to write: ")
  (copy-file project-default project-filename t)
  ; New project is the new current project.
  (write-cur-project-file project-filename)
  (set-variable 'cur-project-filename project-filename)
  (copy-file cur-project-filename project-default t)
 )

但是每次都导航到带有项目文件的目录很烦人。有没有办法在(interactive)不改变全局变量的情况下设置默认目录?

更新:这是我的(有点傻)代码,如果有人感兴趣的话→ http://paste.lisp.org/display/129116

4

1 回答 1

7

您可以轻松地推出自己的interactive功能,方法是向其传递一个计算函数参数列表的表单。

在这种情况下,如果您想避免创建新变量,您可以使用硬编码的默认目录参数直接调用(尽管它看起来确实像您使用变量read-file-name的那种事情)。

例如:

(interactive
  (list (read-file-name "Project file to write: " "~/")))
于 2012-04-23T11:14:30.937 回答