我工作的正常方式是有一个小的 eshell 缓冲区和一个更大的缓冲区来存放我正在处理的代码。 我使用 eshell 缓冲区进行编译和简单的测试。
如果我想做 git 提交,当我以这种方式运行时,我总是会打开一个新的 Emacs 窗口。
我怎样才能让提交在当前的 Emacs 会话中简单地打开一个新的缓冲区?
我的猜测是你的环境变量$EDITOR被声明为 emacs。由于您没有将 Emacs 作为守护进程运行,因此它会启动它的新实例。要解决此问题,您有两种选择:
-
配置您的$EDITOR以使用 Emacsclient
-
使用 egg 或 magit,Emacs 的 Git 前端。
Egg有一点手把手,因为你可以看到快捷方式,但Magit开发得更积极。
我所有的编译和 git/magit 消息出现在触发消息的同一帧的同一窗口中。
查看变量相同的窗口正则表达式和相同的窗口缓冲区名称,因为我认为这就是您可能正在寻找的。
这是我使用的设置:
(setq same-window-regexps (quote ("\*vc\-.+\*" "\*magit.+\*" "grep" "\*compilation\*\(\|<[0-9]+>\(" "\*Help\*\(\|<[0-9]+>\(" "\*Shell Command Output\*\(\|<[0-9]+>\(" "\*dictem.*"(((
希望对您有所帮助。
达蒙
Emacs,使用 git,但不使用 magit,你就是香蕉。 香蕉我说!