我通常在emacs中工作,框架分为两个并排的窗口。通过git(C-x v v
)提交更改会在另一个窗口中为更改注释打开一个缓冲区。问题是,当我完成注释并输入C-c C-c
时,包含注释的窗口将与VC-log缓冲区一起被终止。然后我必须再次将帧拆分为两个窗口,找到已删除窗口中的缓冲区。
有没有办法让这个过程(C-x v v
[提交消息] C-c C-c
)搞乱我的窗口布局?我很高兴VC-log在另一个窗口中打开,然后在不改变窗口布局的情况下消失,或者VC-log暂时拆分其中一个窗口,只要恢复原始缓冲区/窗口布局当我完成提交。我可以为vc-next-action
编写一个保存和恢复窗口配置的包装函数,但似乎应该有一种更简单的方法来执行此操作。有什么想法吗?
答案 0 :(得分:8)
快速查看vc选项是不可能的,但您可以使用vc-next-action
恢复窗口C-x v v
(绑定到save-window-excursion
)建议
(defadvice vc-next-action (around keep-windows activate)
(save-window-excursion
ad-do-it))
还有winner-mode
进行一般恢复。如果你使用git,你肯定应该看看magit。
答案 1 :(得分:1)
我遇到了同样的问题。这似乎有效。
(defadvice log-edit-done (around keep-windows activate)
(save-window-excursion
ad-do-it))
vc-log缓冲区中C-c C-c的帮助显示了这一点:
C-c C-c运行命令log-edit-done,这是一个交互式命令 在`log-edit.el'中编译了Lisp函数。