Emacs,如何获取当前缓冲区的目录?

时间:2015-01-28 15:35:50

标签: emacs elisp

在emacs中有buffer-file-name,它提供文件的完整路径。但有没有办法只获取当前缓冲区中加载的文件目录?

2 个答案:

答案 0 :(得分:24)

有时当前缓冲区的default-directory可能被设置为缓冲区当前访问的文件的当前目录以外的其他内容,在这种情况下,上面的解决方案不会给出提问者正在寻找的内容。

在这种情况下,您可以使用file-name-directory方法,如下所示:(file-name-directory buffer-file-name)

以下是文档的链接:

http://www.gnu.org/software/emacs/manual/html_node/elisp/File-Name-Components.html

答案 1 :(得分:16)

您可以使用default-directory变量。

  

文档:   当前缓冲区的默认目录名称。应以斜线结束。   要以交互方式更改默认目录,请使用命令`cd'。

请注意,默认情况下expand-file-name会使用default-directory,所以有时候会这样做 你甚至不需要提及它。

相关问题