ibuffer是Emacs中的一个缓冲区管理模式,是一种Buffer Menu的增强模式。在Emacs 23以上的版本中已经自带,使用M-x ibuffer命令可以打开。在ibuffer中按下h键可以获得帮助。
ibuffer模式的几个常用快捷键
操作被标记buffer的快捷键
S 保存被标记的buffers v 在当前frame查看被标记的buffers H 在一个新建的frame中查看被标记的buffers V revert,就是从文件中重新读取内容 T 切换被标记buffers的只读状态 D 关闭被标记的buffers M-s a C-s 在被标记的buffers中进行增量查找 M-s a C-M-s 在被标记的buffers中进行正则查找 U 在被标记的buffers中进行正则替换 Q 在被标记的buffers中进行询问替换 I 同Q一样,但是使用正则表达式 O 在被标记的buffers中进行正则查找 X 将被标记的buffers的内容作为一个shell命令的输入 N 使用一个shell命令的输出替换被标记的buffers的内容 F 使用被标记buffers对应的文件名作为一个shell命令的参数 k 将被标记的buffers从ibuffer的缓冲区中删除,但是不关闭 x 关闭所有被标记的buffers
标记buffers的快捷键
m 标记 t 切换标记状态 u 取消标记 ** 取消所有标记 *M 标记属于指定的major-mode的buffers *u 标记所有未保存的buffers,这些buffers具有对应的文件 *m 标记所有已修改的buffers,这些可能没有对应的文件 *s 标记所有以'*'开头的buffers *e 标记所有有对应文件但文件又已经不存在的buffers *r 标记所有只读的buffers */ 标记所有dired-mode的buffers,也就是所有目录 *h 标记所有help-mode和apropos-mode的buffers . mark buffers older than 'ibuffer-old-time' d 标记当前位置的buffer,用于删除 %n 标记所有buffer名符合给定正则表达式的buffers %m 标记major mode符合给定正则表达式的buffers %f 标记文件名符合给定正则表达式的buffers
排序buffers的快捷键
, 在不同的排序方法间轮流切换 si 当前排序方法的反向排序 sa 按照字典序排序 sf 按照文件名排序 sv 按照最后查看时间排序 ss 按照buffers的大小排序 sm 按照major-mode排序
其他快捷键
q 退出ibuffer的buffer= 查看buffer和其对应文件的差别f 查看当前行的buffer o 在另外的window查看buffer,并且切换焦点 C-o 在另外的window查看buffer,但是不切换焦点 h或? 查看帮助
过滤器(filter)和过滤器组(filter group)
filter和filter group是ibuffer中两个很强大的功能,下面介绍一下这两个功能。
过滤器是用来过滤ibuffer视图中的buffers的,用来控制要显示哪些buffers,比如你可以控制所有以*开头的buffers都不显示在ibuffer视图中。每个ibuffer的buffer都有一个活动过滤器栈,用来存放过滤器,放置在这个栈中的过滤器会作用于ibuffer视图,使得符合这些过滤器标准的buffers可以在ibuffer视图中显示出来,而不符合的则被隐藏掉。
例如,在ibuffer视图中使用如下命令:
/n ^* RET
可以在栈中创建一个过滤器,该过滤器过滤出所有buffer名称以'*'开头的buffers。
再使用如下命令:
/n Message RET
可以从上一次过滤出的buffers中再过滤出名字中包含'Message'的buffers。
上面演示的是过滤器的”与“逻辑组合的应用效果,即在ibuffer视图中显示的所有buffers要符合所有过滤器栈中的过滤器定义的标准。
ibuffer还提供了一个简单的”或“逻辑组合的应用,可以把栈顶的两个逻辑按照‘或’逻辑组合成一个过滤器,组合之后,栈顶的两个过滤器就变成了一个。
在ibuffer视图的最上端显示了当前的活动过滤器,如下图所示:
过滤器组其实是一组buffers,这个组有一个名称,并且这个组里的所有buffers都符合一个过滤器定义的标准。过滤器组里的所有buffers都被紧挨着在ibuffer视图中显示。
创建过滤器组很简单,首先你要创建过滤器,然后使用如下的快捷键:/g,ibuffer会提示你输入过滤器组的名称,这就完成了。
未完...