系统升级导致emacs 不能用C-x C-f来进入某些目录

用的是MacOS系统, 刚刚升级到 Catalina (10.15). Emacs (Client) 出现了如下问题:

在使用C-x C-f 时, 不能进入某些目录:如Documents(文件): ”Listing directory failed but ‘access-file’ worked“

尝试的解决方法: In System Preferences -> Security & Privacy, select the Privacy tab. From the list on the left, select Full Disk Access. Click the padlock in the lower left of the window to unlock this setting, if necessary. Click the + button to add Emacs to the list, then add Emacs. 不行 ~

切换到终端下:可以

这是什么问题? Dired插件吗?

你怕不是沒有做后半部分。

Now in Emacs, do the following for each of the three directories: Desktop, Documents, and Downloads.

  1. Press Cmd+O to open a file.
  2. Open any arbitrary file in the folder you want access to.

From now on, you’ll be able to use C-x C-f to open ~/Desktop/, for example.

很明显 Apple 开始在 macOS 照搬 iOS 禁止第三方应用程序任意访问硬盘了。Terminal.app 做为內置系统管理应用自然是有加进白名单里。

在另个 thread 可以看到是要通过对话框确认一次才能打开。井且取決于用的 Emacs 可能要把 /usr/bin/ruby 而不是 Emacs.app 加进去。

I updated to macOS Catalina which requires the user through pop-ups to allow any app trying to access the file system for the first time.

这也奇怪了:

  1. 做了后半部分
  1. 加ruby到Accessibility和Full Disk Access

还是不行, 用Cmd+O 是可以打开文件了。

可能是我第一次打开没允许(加入白名单)吗?

那你可能只好试下这个方法了

升级到Catalina后没法用,又降到了mojave。不打算升级了,苹果的系统升级对普通用户的体验变好,但对程序员真不友好~

谢谢热心帮忙~ 我一会儿再试试这个方法

确实是啊,受限多了,好难受。 我想用sudo启动下试试,结果在/Users/myID/Applications/下看不到emacs。:frowning:

终于解决了:

  1. Update to Emacs 26.3

  2. 执行了如下命令:

    % cd /Applications/Emacs.app/Contents/MacOS
    % mv Emacs Emacs-launcher
    % mv Emacs-x86_64-10_14 Emacs
    % cd /Applications/Emacs.app/Contents/
    % rm -rf _CodeSignature

  3. Spotlight/Alfred 也好用了

谢谢 LdBeth & Kinney !

我也想降级,但是太麻烦了