我试图使我的emacs表现得像这个vim插件:在两个垂直窗口之间分割时,在它们之间切换使当前窗口占总宽度的60%,而前一个窗口占40%。
.-----------------.
| | |
| A | B |
| | |
.-----------------.
.-----------------.
| | |
| A | B |
| | |
.-----------------.
这是vim插件:autoresize.vim
这样的事情是否已经存在?
如果没有,我想我可以使用enlarge-window-horizontally命令,但我找不到从窗口切换触发的钩子。
答案 0 :(得分:1)
不确定它是否完全匹配,并且我不是一个emacs wiz,但请查看Switching Buffers中的emacswiki.org文章。
该页面中的几个选项看起来很有希望,尤其是关于Transposing Two Buffers的摘录:
(defun transpose-buffers (arg)
"Transpose the buffers shown in two windows."
(interactive "p")
(let ((selector (if (>= arg 0) 'next-window 'previous-window)))
(while (/= arg 0)
(let ((this-win (window-buffer))
(next-win (window-buffer (funcall selector))))
(set-window-buffer (selected-window) next-win)
(set-window-buffer (funcall selector) this-win)
(select-window (funcall selector)))
(setq arg (if (plusp arg) (1- arg) (1+ arg))))))
答案 1 :(得分:1)
我自己没有尝试过,但它会按照你的要求进行。