emacs使用正则表达式杀死多个缓冲区

时间:2017-02-24 16:17:41

标签: emacs

我想杀死以info开头的所有缓冲区,我输入 C-x-k info *< *> ,它显示“不匹配”。
所以我知道我不能用*代表所有角色。
它应该是什么样的正确表达? 任何帮助都会感激不尽 这是我的截图。请看看。
emacs buffer list window

2 个答案:

答案 0 :(得分:3)

M-x kill-matching-buffers是一个标准命令。

How do I answer y automatically (kill-matching-buffers asks if I should kill a modified buffer)?也可能有意义(虽然我实际上并不是推荐这样做)。

  

所以我知道我不能用*代表所有角色。

.*将匹配零个或多个非换行符,但您不需要在此处使用它,因为kill-matching-buffers命令不需要匹配整个名字。 ^info符合您(规定的)要求。

我建议您阅读 Ch i g (emacs) Regexps以了解Emacs中正则表达式的语法。

答案 1 :(得分:0)

  1. 您的缓冲区的名称为*info**info*<N>N = 3..16。 C-x k *info TAB TAB显示您要杀死的缓冲区的所有匹配项。但C-x k允许您一次只删除一个

  2. 如果您使用库Icicles,那么C-x k就是multi-command,这意味着它可以单独或一起杀死多个缓冲区。 (而Icicles允许你使用正则表达式进行模式匹配。但你不需要这里。)

    在这种情况下,您只需执行C-x k *info TAB C-!即可终止所有*info个缓冲区。

    C-! applies the action to all objects符合您当前的输入模式。