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