3

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 に答える