Emacs中的完美多窗口操作

  |   Source

典型的工作流

  1. 在两个子窗口中对比文件内容
  2. 打开更多的窗口以参考其他信息.
  3. 对某个窗口内容比较有兴趣,跳转到该窗口,将该窗口最大化
  4. 看完最大化的窗口内容后,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 <register>存储,C-x r j <register>载入.

Comments powered by Disqus