Switch buffer quickly

C-x b“是切换emacs buffer的快捷键,可是你知道吗,即使是切换buffer这样的基本操作,也有很多个包能够提升效率。像我这样一天到晚开着emacs,buffer越开越多却很少关掉的人来说,选择一个高效的工具是十分必要的。

iswitchb就是其中一个,而且是缺省安装的(但该功能默认关闭)。

切换buffer的传统方式是从头到尾输入buffer的名字,大小写敏感,当然可以使用TAB自动补全。iswitchb的方式则灵活得多,默认情况下大小写不敏感,当输入大写字符时自动转换到大小写敏感状态(与字符串搜索类似);还有就是可以匹配buffer名字的任意部分。首次使用iswitchb时可能会吓一跳,因为它将所有的buffer都列在minibuffer里,而不像传统方式那样按TAB后打开一个新buffer;但是,随着不断输入,minibuffer里将只显示能够匹配用户输入的buffer列表,其中离光标最近的一个(最左边高亮显示的)buffer是默认选择的buffer。由于iswitchb的独特匹配方式,可能出现输入结束仍有多个候选buffer的情况,如果这时我们想要切换到的buffer并非是第一个,则可以使用C-s(正向)或C-r(反向)遍历buffer列表。

打开iswitchb方式如下:

M-x customize-group iswitchb

然后打开iswitchb mode,或者手工在.emacs文件里添加

(iswitchb-mode 1)

更多用法参见wiki页

我们还可以使用BufferSelection给”C-x C-b“一点变化,只需在.emacs文件里添加如下代码:

(require 'bs)

(global-set-key (kbd "C-x C-b") 'bs-show)

7 thoughts on “Switch buffer quickly

  1. 嘿嘿,我用的是 SwBuff,像 alt-tab 一样可以循环选择自己想要的 buffer,并把它绑定在了“C-;”和“C-‘”。

    它会根据当前 buffer 的数量在 minibuffer 上弹出一个小 buffer 来高亮你的选择。

  2. iswitchb 好~!看了这篇的结果是下面的code:

    (iswitchb-mode 1)
    (defun util-buffer (name)
    (save-excursion
    (setq case-fold-search nil)
    (string-match “^*[A-Z].**$” name)))
    (setq iswitchb-buffer-ignore ‘(“^ ” util-buffer))

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据