Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 为什么Emacs尝试在OSX中使用~/.local/share,即使它不是以root用户身份运行?_Macos_Emacs_Elisp_Spacemacs - Fatal编程技术网

Macos 为什么Emacs尝试在OSX中使用~/.local/share,即使它不是以root用户身份运行?

Macos 为什么Emacs尝试在OSX中使用~/.local/share,即使它不是以root用户身份运行?,macos,emacs,elisp,spacemacs,Macos,Emacs,Elisp,Spacemacs,为了在程序没有根访问权限时以编程方式管理删除,有必要将“已删除”文件移动到用户目录的本地位置 通常,Emacs使用函数make-directory-internal() 但是,my Emacs在不属于其用户的位置上执行此操作,无需测试所有权,首先: make-directory-internal("~/.local/share/Trash") 根据,在尝试写入目录之前,我可以非常轻松地测试所有权: (file-accessible-directory-p "/foo") ⇒ nil

为了在程序没有根访问权限时以编程方式管理删除,有必要将“已删除”文件移动到用户目录的本地位置

通常,Emacs使用函数
make-directory-internal()

但是,my Emacs在不属于其用户的位置上执行此操作,无需测试所有权,首先:

make-directory-internal("~/.local/share/Trash")
根据,在尝试写入目录之前,我可以非常轻松地测试所有权:

(file-accessible-directory-p "/foo")
     ⇒ nil
相反,此Emacs代码尝试使用my~中但由root拥有的文件夹。它不会通过使用它实际有权访问的文件夹来处理异常

例如,它使用
~/.local/share/Trash
,而不是
~/.Trash

代码中没有更好的异常处理有什么原因吗?我是否需要提交补丁,或者这是一种正常的、可接受的编程方式

简而言之,为什么这段代码会这样做

根据@Erlaunis的问题,我的
emacs
无法编辑
~/.local/share/Trash
,因为它属于root用户

因此,我最终遇到了B.S.,如下所示:

Debugger entered--Lisp error: (file-error "Creating directory" "Permission denied" "/Users/myusername/.local/share/Trash")
我在这里发布了完整的错误输出:[链接有效期至2016 04 23)


(注意:虽然我认为这个问题的一部分在Emacs Lisp之外有一些普遍的兴趣,但我不会拒绝将其转移到Emacs.stackexchange.com的建议。请在评论中提出建议。)

/,这似乎是一个相当常见的()问题,有一个明显的解决方案()。我想知道我在这里遗漏了什么。这里有一个相关的线程,名为“在OS X上删除垃圾文件:/,//”,这肯定是相关的。但没有说明为什么在模块管理中会这样做,至少一开始是这样。为什么~/.local/share/Trash在您的系统上归root所有?听起来像是配置错误。@Nathanbassanese:我明白了在这件事上,我们没有理由相信这个“金枪鱼”的家伙。他作为支持证据提供的联系是完全不相关的。看来这个阿斯库布图问题只是“盲人领导盲人”的众多案例之一。在
~/
下的任何位置都有root拥有的文件是非常奇怪的,因此如果
.local/share/Trash
是一个例外,我们就会知道。//,这似乎是一个相当常见的()问题,有一个明显的解决方案()。我想知道我在这里遗漏了什么。这里有一个相关的线程,名为“在OS X上删除垃圾文件:/,//”,这肯定是相关的。但没有说明为什么在模块管理中会这样做,至少一开始是这样。为什么~/.local/share/Trash在您的系统上归root所有?听起来像是配置错误。@Nathanbassanese:我明白了在这件事上,我们没有理由相信这个“金枪鱼”的家伙。他作为支持证据提供的联系是完全不相关的。看来这个阿斯库布图问题只是“盲人领导盲人”的众多案例之一。在
~/
下的任何位置都有root用户拥有的文件是非常奇怪的,因此如果
.local/share/Trash
是个例外,我们就会知道这一点。