【问题标题】:Unable to perform interactive git rebase with emacs as the default editor无法使用 emacs 作为默认编辑器执行交互式 git rebase
【发布时间】:2021-01-01 20:54:07
【问题描述】:

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

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

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

【问题讨论】:

  • 我不知道您为什么遇到emacscore.editor 一样的问题。无论如何,如果您对使用 emacs+git rebase --interactive 感兴趣,我强烈建议您尝试Magit - 网上有很多教程或视频说明了使用 Magit 的 "git rebase -i $SHA" 工作流程(即,没有在终端中键入命令本身,但直接通过 emacs 键绑定)。例如,youtube.com/watch?v=mtliRYQd0j4
  • 这仍然是一个问题,现在更是如此,因为我现在配置了第二个 Linux 机器,就像上面列出的第一个一样,并且在 rebase 时使用 emacs 作为默认编辑器也遇到了同样的问题。我很欣赏有使用 magit 的开发人员,但我不是其中之一,所以建议我使用 magit 的答案很有趣但没有帮助。
  • 好的,但无论如何,您的问题缺少一些细节。例如,emacs 用来显示缓冲区的 mode 是什么(例如M-: mode-name RET)?缓冲区的确切内容是什么?键绑定C-x C-q 会解决这个问题吗?
  • 这是我可以告诉你的: 1. 主模式是 'git-rebase-mode' 2. 键绑定 C-x C-q 确实使缓冲区脱离只读模式,但我可以'不写。任何按键都无效。 3. 缓冲区内容是你在变基期间所期望的:pick a0ddc87 Comment for this SHA pick 90e55a4 Comment for this SHA # Rebase 0224d9e..90e55a4 to 0224d9e (2 commands) # # Commands: # 其余的 cmets 你期待看到

标签: git emacs interactive git-rebase


【解决方案1】:

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

实际上,这种模式与 Magit 本身有关:参见例如this file in the GitHub repository of Magit.

因此:

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

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

  • 运行 C-h v load-history RETC-x oC-s git-rebase 以定位 git-rebase.elc 的存储位置。
  • 如果它在您的$HOME/.emacs.d/elpa/ 文件夹中,则适当的操作是显而易见的;
  • 否则,如果它位于 /usr/share/emacs/26.3/lisp/ 中,则需要依靠分发包管理器来确定如何卸载 Magit。

【讨论】:

  • 太棒了!这是很好的信息。我将进一步调查并回到这个线程。同时,我没有安装 magit,所以因为它在那里,所以默认安装它,也许是 Ubuntu 20.04 软件包的一部分。我在工作中使用在 Ubuntu 18.xx 上运行的 emacs 并且没有这个问题。我需要检查并查看我的工作笔记本电脑上运行的是什么版本的 emacs。无论如何,我会在一段时间内回复您,也许明天。谢谢埃里克。
  • 还没有机会尝试您的建议,但我想从我每天使用的环境中放置版本并且没有出现我看到的问题:emacs 是 25.2,而 git是 2.17。 Ubuntu 是 18.04
猜你喜欢
  • 2015-05-19
  • 2013-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-12
  • 2015-04-24
  • 1970-01-01
  • 2015-06-25
相关资源
最近更新 更多