在emacs中有buffer-file-name,它提供文件的完整路径。但有没有办法只获取当前缓冲区中加载的文件目录?
答案 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
,所以有时候会这样做
你甚至不需要提及它。