在Emacs / elisp中调用目录函数

时间:2015-07-27 11:43:08

标签: emacs elisp

如何找到调用函数的目录?

例如,如果我调用该行

(defconst dir default-directory)

dir的值是包含上述行的罚款的目录,而不是我从中调用它的目录。

提前致谢

1 个答案:

答案 0 :(得分:0)

Emacs中的默认行为是使用与directory关联的file being "visited" in the current buffer。 所以,

(file-name-directory (buffer-file-name))

应该为您提供当前缓冲区文件的目录名称(即您当前正在使用的缓冲区,调用自定义Lisp函数)。

如果您不确定,是否在缓冲区的上下文中调用了自定义函数,缓冲区已经有与之关联的文件名,则应测试:

(let ((file (buffer-file-name)))
    (if (not file)
        (progn ... no file name here ...)
      ... ok, file name available ...))