问题描述
我尝试使用emacs c-x c-f /Users/fred/DropBox/foo/bar/bam/baz.txt打开文件。
在迷你缓冲区中显示...
“文件存在,但无法读取”。
...接下来,我将执行m-x还原缓冲区。现在在迷你缓冲区中说...。
“打开输入文件:输入/输出错误,/ Users / fred / DropBox / foo / bar / bam / baz.txt”
...我再次执行m-x恢复缓冲区,这次文件可以正常读取。
问题是文件应该在第一次尝试时打开,没有问题!
这或多或少是一个可重复的问题(特别是在过去的两周中,我几次“出现文件,但无法读取”。我尝试各种变通方法来打开文件(例如,按两次mx还原缓冲区)我通常(总是?)能够打开该文件,一旦我最终打开了其中一个顽固的文件,便可以在其他情况下(例如新窗口或在我关闭后重新打开)使用emacs轻松打开该文件。缓冲区)。
>
当我使用初始化文件启动emacs时,我似乎能够重现非常类似的行为,该文件启动了打开了大约30个不同文本文件的emacs。 (即init的一部分是在emacs中打开这些文件)。当我将emacs缓冲区(c-x b)更改为指向某些文件时,将其命名为GoodFile1,GoodFile2,可见文本,即一切正常。对于其他文件,将它们称为BadFile1,BadFile2,BadFile3,当我切换到它们时,屏幕为空白,并且我知道它们中包含很多文本。我似乎没有任何类似于“文件存在,但无法读取”的错误消息,但这仍然是不良行为,似乎与原始问题有关。接下来,与最初报道的情况类似,我在1至4(?)次之间击中了m-x还原缓冲区,并且出现问题,文本再次出现,我再次感到高兴。现在,这是一个有趣的地方:当我启动一个 new 终端窗口并启动一个加载相同初始化文件的emacs时,现在可以从窗口中看到以前损坏的文件(例如BadFile1,BadFile2,BadFile3)。启动-应该在正常运行的计算机上。好像以前是空白的看似文件更改了某种状态,以便当新的emacs尝试打开该文件时,该文件将按原样显示。涉及哪种状态变化?我认为这与智能同步有关。因此,问题是,假设它是智能同步,如何避免多次击中还原缓冲区的烦人行为?靴子之间会持续吗?我敢肯定,unix touch没有帮助。也许还有其他操作要执行?
注意:在这台机器上,我总是使用'emacs -nw -l my_special_emacs_init.el'启动emacs(GUI用于弱智(-;)
>
所有令人讨厌的不良行为都发生在我的 new 设置中。
在我的旧设置中,多年来,甚至数十年来,我从未发生过这种行为。 (并且,在我的旧设置中,我尝试了上述特定文件,并且可以正常打开)
那么,您可能会问,我的新设置和旧的设置有什么不同?
-
操作系统/硬件:
- 新设置:全新Mac Book Pro上的Catalina 10.15.6。
- 旧设置:“ 2015年初”在Mac Book Pro上运行Mohave 10.14.6(以前的操作系统中从未出现过此问题)
-
DropBox:
-
Emacs版本:
- 新设置:GNU Emacs 27.1
- 旧设置:GNU Emacs 22.1.1。
很显然,这不是权限问题,因为我以前的设置从未遇到过此问题。
有任何线索吗?
有人发现我发现“文件存在但无法读取”的另一种情况时,有人知道我可以做些什么来“深入挖掘”诊断。
有没有关于操作系统差异的想法?硬件差异? DropBox Smart Sync是vs Smart Sync没有区别? Emacs版本不同吗?
> 我目前的直觉是上面更新中提到的“状态更改”,它与智能同步有关,以某种方式弄清楚用户希望将给定文件本地缓存。行为不良的文件不是本地文件,因此不良的emacs无法打开它们。用1到4个还原缓冲区重击它们会告诉智能同步使给定文件成为本地文件。 sync,智能同步还不够聪明,无法弄清楚emacs用户想要什么!也许可以更改emacs的方式,以便使其智能同步,以实现应将给定文件设为本地本地。或者我们可以请DropBox尊重emacs。或我没有正确使用智能同步。有什么想法吗? >
解决方法
我有同样的问题。这是根本原因,以及解决方法:
https://emacs.stackexchange.com/questions/53026/how-to-restore-file-system-access-in-macos-catalina
简而言之,在常规设置->安全和隐私->隐私中为/ usr / bin / ruby授予完整的文件系统访问权限