无法使用 emacs 作为默认编辑器执行交互式 git rebase

问题描述

我无法使用 emacs 作为我的认编辑器从命令行成功执行“git rebase -i”。我可以编辑文件,但不能写入。 emacs 报告的错误是 git-rebase-todo 文件是只读的,但是查看从另一个终端生成文件的权限,我可以看到它不是。更改我的 git 配置以使用 vi 作为认编辑器确实有效,并允许我在本地重新设置我的项目。至少可以说,这令人困惑。由于某个地方的 emacs 配置错误,感觉像是某种权限问题。

我最近安装了 Ubuntu 20.04 LTS。我的工具是 gnu emacs 26.3 和 git 2.25.1。

我在网上查找了与此类似的其他问题,但似乎都没有解决,但它们已关闭。似乎人们正在看到这一点。任何帮助将不胜感激。

解决方法

根据您在评论中提供的详细信息,您案例中启用的主要模式是git-rebase-mode

其实这个模式和Magit本身有关:参见e.g. this file in the GitHub repository of Magit

因此:

  1. 或者您觉得依赖此模式的功能很方便(参见例如 this online doc);
  2. 或者您可能想要找到 Magit emacs 包的位置并将其删除。

如果你选择了选项 2,一些提示:

  • 运行Ch v load-history RETCx oCs git-rebase来定位git-rebase.elc的存储位置.
  • 如果它在您的 $HOME/.emacs.d/elpa/ 文件夹中,则相应的操作很明显;
  • 否则,如果它在 /usr/share/emacs/26.3/lisp/ 中,您需要依靠您的分发包管理器来确定如何卸载 Magit。