“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)
嘿嘿,我用的是 SwBuff,像 alt-tab 一样可以循环选择自己想要的 buffer,并把它绑定在了“C-;”和“C-‘”。
它会根据当前 buffer 的数量在 minibuffer 上弹出一个小 buffer 来高亮你的选择。
ibuffer + ido 也很好用
发现自己尝试新鲜事物的欲望越来越底,难道是年纪大了?!
下决心五一期间恶补一下emacs……
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))
如果是在已经打开的buffer间选择,用windmode.el好!快!
写错了,是windmove.el
感谢推荐