【发布时间】:2012-05-24 11:11:15
【问题描述】:
我工作的正常方式是为我正在处理的代码设置一个小的 eshell 缓冲区和一个更大的缓冲区。我使用 eshell 缓冲区进行编译和简单测试。
如果我想做 git 提交,当我以这种方式运行它时,我总是会打开一个新的 Emacs 窗口。
我怎样才能在当前 Emacs 会话中简单地打开一个新缓冲区?
【问题讨论】:
-
我一直只是使用 vc-git 来完成我的提交。也许你应该试试。
我工作的正常方式是为我正在处理的代码设置一个小的 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,因为我认为这就是您可能正在寻找的。p>
这是我使用的设置:
(setq same-window-regexps (quote ("\*vc\-.+\*" "\*magit.+\*" "grep" "\*compilation\*\ (\|\)" "\*帮助\*\(\|\)" "\*Shell命令输出\*\(\|\)" "\*dictem.*")))
希望对您有所帮助。
达蒙
【讨论】:
如果你使用 Emacs,你就是香蕉,使用 git,但不要使用 magit。我说的是香蕉!
【讨论】: