有现成的操作吗?
ace-swap-window
1 个赞
善用搜索,论坛已经有好几个相关帖子了。
window-swap-states
, 直接用内置的命令就行了。
1 个赞
什么是repeat mode
可以连续按键,比如切换窗口 就可以 C-x o o o o
这几个原生命令可以试一下,会让你喜欢的。【来自有原生,绝不用插件的执念党】
6 个赞
切换窗口这个场景下,个人认为没必要搞那么复杂.绝大多数时候 ,你只需要打开两个窗口,所以你应该设一个绝大多数时候都可以无脑操作的鍵.我的操作流供大家参考:
sort-tab-left: C-,
sort-tab-right: C-.
other-window: C-return
切换横竖布局: spc w w
close : q
我是用了这个自定函数:
(defun transpose-windows ()
"Swap the buffers shown in current and next window."
(interactive)
(let ((this-buffer (window-buffer))
(next-window (next-window nil :no-minibuf nil)))
(set-window-buffer nil (window-buffer next-window))
(set-window-buffer next-window this-buffer)
(select-window next-window)))
另外还会常用一个横竖布局切换的函数:
(defun toggle-window-split ()
"Toggle window split from vertical to horizontal."
(interactive)
(if (> (length (window-list)) 2)
(error "Can't toggle with more than 2 windows")
(let ((was-full-height (window-full-height-p)))
(delete-other-windows)
(if was-full-height
(split-window-vertically)
(split-window-horizontally))
(save-selected-window
(other-window 1)
(switch-to-buffer (other-buffer))))))
我不知道有原生的! 這個很不錯!
evil 用户可以用 C-w H/J/K/L 将当前窗口移动到最左/下/上/右边,例如左右分屏在右边窗口用 C-w H 或左边窗口用 C-w L 互换两个窗口的位置