【发布时间】: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。
我在网上查看了与此类似的其他问题,但似乎都没有解决,但它们已关闭。似乎人们看到了这一点。任何帮助将不胜感激。
【问题讨论】:
-
我不知道您为什么遇到
emacs和core.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