Emacs:默认目录(交互式“f”)

时间:2012-04-23 10:36:54

标签: emacs elisp

我正在编写一个简单的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

1 个答案:

答案 0 :(得分:7)

您可以轻松地推送自己的interactive功能,方法是将表格评估为您的函数的参数列表。

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

e.g:

(interactive
  (list (read-file-name "Project file to write: " "~/")))