В emacs, как я могу убить несколько буферов, не открывая их отдельно

У меня есть много (~ 30) буферов, чьи имена начинаются с одной и той же подстроки. Есть ли способ передать регулярное выражение команде kill buffer, чтобы я мог убить всех из них за один раз?

Ответы

Ответ 1

Команда, которую я искал M-x kill-matching-buffers.

Ответ 2

Более интерактивный и универсальный подход с helm-list-buffers:

  • Введите то, что вы хотите сопоставить.
  • Выберите все совпадения с помощью M-m (helm-toggle-all-marks).
  • Дополнительно, уточните свой выбор с помощью C-SPC (helm-toggle-visible-marks), используя C-n/C-p для навигации.
  • Нажмите TAB, выберите "kill buffers" из доступных параметров. Другие варианты: query-replace/origin/grep/revert, а также множество других.

Ответ 3

  • Запустите M-x ibuffer (встроенная команда).
  • В каждой строке с буфером, который вы хотите удалить, нажмите "d".
  • По завершении нажмите "x", чтобы зафиксировать изменения.

Ответ 4

Использование руля:

  • Откройте рулевой с помощью helm-mini. В моем случае я сопоставил его с C-2
  • Прокрутите список и отметьте те, которые хотите удалить, с помощью C-Space
  • И выберите все, что вы хотите, нажмите M-S-d/M-D

Это удаляет все выбранные буферы и закрывает шлем.

Ответ 5

C-x C-b, чтобы перечислить все буферы
k для отметки буферов для kill (D появляется рядом с буфером)
x выполнить kill