作者:mobiledu2502923963 | 来源:互联网 | 2023-05-24 16:17
在emacs中有buffer-file-name,它提供了文件的完整路径.但有没有办法只获取当前缓冲区中加载的文件的目录?
1> 小智..:
有时候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
缓冲文件名是一个函数,因此应为(文件名目录(缓冲文件名))。
2> abo-abo..:
您可以使用该default-directory
变量.
文档:当前缓冲区的默认目录的名称.应以斜线结束.要以交互方式更改默认目录,请使用命令`cd'.
请注意,默认情况下expand-file-name
会使用default-directory
,所以有时您甚至不需要提及它.