窗格和缓冲区管理

多窗格

表 25.9. Emacs 窗格

C-x 2M-x split-window-vertically分隔出两个垂直窗格,水平分隔线
C-x 3M-x split-window-horizontally分隔出两个水平窗格,垂直分隔线
C-x 1M-x delete-other-window只保留当前窗格
ESC ESC ESCM-x keyboard-escape-quit只保留当前窗格
C-x 0M-x delete-window关闭当前窗格
C-x oM-x other-window在下一个窗格中激活光标
C-M-vM-x scroll-other-window向下卷动下一个窗格,使用负参数可以向上卷动
  • 下一个窗格: 垂直分隔,则先左后右;水平分隔,则先上后下。如果窗格还有子窗格,则先遍历其子窗格后,再遍历其它窗格,以此递归。

多缓冲区

Emacs 中,打开新的缓冲区,原有缓冲区并不会关闭

表 25.10. Emacs 缓冲区

C-x C-bM-x list-buffers查看缓冲区列表
C-x bM-x switch-to-buffer切换到其它缓冲区
C-x kM-x kill-buffer关闭当前缓冲区
  • 切换到其它缓冲区时,默认上一次使用的缓冲区(可以用 TAB 补全)
  • 使用多窗格时,缓冲区操作只对当前窗格有效
  • 建议使用 ibuffer.el 这个扩展。 Emacs 自带,在配置文件中添加如下语句

    1. ;;========== ibuffer
    2. (require 'ibuffer)
    3. (global-set-key ( kbd "C-x C-b ")' ibuffer)
  • 另一个缓冲区列表的扩展(Emacs 自带)

    1. ;;CRM bufer list
    2. (global-set-key "\C-x\C-b" 'electric-buffer-list)