在 Emacs/elisp 中调用了目录功能
Directory function is called for in Emacs/elisp
如何找到调用函数的目录?
例如,如果我调用线路
(defconst dir default-directory)
dir 的值是包含上述行的 fine 所在的目录,而不是我调用它的目录。
提前致谢
Emacs 中的默认行为是使用 directory associated with the 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 ...))
如何找到调用函数的目录?
例如,如果我调用线路
(defconst dir default-directory)
dir 的值是包含上述行的 fine 所在的目录,而不是我调用它的目录。
提前致谢
Emacs 中的默认行为是使用 directory associated with the 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 ...))