Emacs中的完美多窗口操作
典型的工作流
- 在两个子窗口中对比文件内容
- 打开更多的窗口以参考其他信息.
- 对某个窗口内容比较有兴趣,跳转到该窗口,将该窗口最大化
- 看完最大化的窗口内容后,undo最大化操作,重新回到早先的多个小窗口模式以便继续纵览全局
将子窗口自动编号,然后按M-0…9跳转(最爱)
安装window-numbering.el,然后在.emacs中添加以下代码,
(require 'window-numbering) (window-numbering-mode 1)
undo/redo之前的窗口操作(最爱)
安装Winner Mode,然后在.emacs中添加以下代码,
(winner-mode 1) ;; copied from http://puntoblogspot.blogspot.com/2011/05/undo-layouts-in-emacs.html (global-set-key (kbd "C-x 4 u") 'winner-undo) (global-set-key (kbd "C-x 4 r") 'winner-redo)
焦点移动到下一窗口(常用)
M-x other-window,快捷键是`C-x o`.
水平/垂直切分当前窗口(常用)
快捷键C-x 2/3
将当前子窗口最大化(常用)
M-x delete-other-windows,快捷键`C-x 1`.
删除当前子窗口(偶尔用)
M-x delete-window (快捷键`C-x 0`)
顺便说一下,M-x kill-buffer-and-window (快捷键`C-x 4 0`),我现在用得更多 些.
移动焦点到上下左右的窗口(基本不用)
因我较喜欢vi快捷键,所以我安装了Evil Mode.快捷键和Vi一样. C-w h/j/k/l移动至各方向的子窗口.
存储/载入窗口布局到register(基本不用)
`C-x r w`存储,`C-x r j`载入.