Emacs shell:保存提交消息

时间:2016-09-16 09:39:00

标签: git shell vim emacs

我几天前开始使用emacs,在emacs shell(M-x shell)中使用git时我遇到了问题。当我'git commit'或者' git commit --amend',打开vim编辑并保存提交消息。我没关系,但我找不到保存和退出vim的方法,因为按下ESC不会触发vim Normal Mode,而ESC是我的emacs metakey。 我尝试将我的git编辑器更改为emacs,但它也不起作用,似乎emacs shell无法运行emacs,并且它没有像我想象的那样打开一个新的缓冲区。

emacs: Terminal type "dumb" is not powerful enough to run Emacs.

有没有办法可以使用git命令行(我不需要像magit那样使用git前端客户端,......)和emacs shell?

谢谢, 罗宾

3 个答案:

答案 0 :(得分:3)

您可以使用

将编辑器更改为更简单的内容,例如nano
git config core.editor nano

或者您可以通过将消息放在命令行上来禁止打开任何编辑器:

git commit --amend -m "My message"

答案 1 :(得分:1)

在评论中发布@romainl的答案,因为它符合我的要求: <C-o>退出插入模式,:wq:x并输入。

答案 2 :(得分:0)

另一种绕行方式是使用gits abiltiy将文件用作提交消息:

  1. 在提交之前,将提交消息(在emacs中)写到一个临时文件中
  2. 使用以下命令提交:git commit -F temp_file_name
  3. 删除文件