“文件存在,但无法读取”,但是第三次​​尝试是一种魅力使用emacs,os-x Catalina 10.15.6,Dropbox智能同步

问题描述

我尝试使用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 设置中。

在我的旧设置中,多年来,甚至数十年来,我从未发生过这种行为。 (并且,在我的旧设置中,我尝试了上述特定文件,并且可以正常打开)

那么,您可能会问,我的新设置和旧的设置有什么不同?

  1. 操作系统/硬件:

    • 新设置:全新Mac Book Pro上的Catalina 10.15.6。
    • 旧设置:“ 2015年初”在Mac Book Pro上运行Mohave 10.14.6(以前的操作系统中从未出现过此问题)
  2. DropBox

    • 新设置:智能同步打开。我在启用智能同步的情况下使用DropBox,因此认情况下文件仅“在线”。 “仅在线”是误称。有些文件最终在本地存储在我的硬盘上。智能同步似乎可以确定要在Mac本地存储哪些文件。我怀疑知道如何做到这一点将解决我的问题。

    • 旧设置:关闭智能同步。我已经使用DropBox多年了,但距离Smart Sync却相距甚远,而且从未遇到过打开文件的问题。

  3. 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​​授予完整的文件系统访问权限

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...