我正在编写一个简单的hacky解决方案,在DesktopAid之上切换«projects»(缓冲区和框架集(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
答案 0 :(得分:7)
您可以轻松地推送自己的interactive
功能,方法是将表格评估为您的函数的参数列表。
在这种情况下,如果你想避免创建一个新变量,你可以直接用一个硬编码的默认目录参数调用read-file-name
(尽管它看起来像你那样> em>使用变量for。。
e.g:
(interactive
(list (read-file-name "Project file to write: " "~/")))