Функция похожа на другой буфер, но с фильтрацией

Я ищу способ включить некоторую фильтрацию в метод other-buffer в emacs. В настоящее время вызов other-buffer извлекает последний самый последний буфер, но проблема в том, что буферы, которые модифицируются внешними процессами, продолжают появляться как other-buffer. Я хотел бы реализовать какую-то фильтрацию в другом буфере.

В настоящее время я использую зло с C- ^, связанным с другим буфером, и у меня есть несколько активных буферов tail.el, и когда я пытаюсь переключить буферы, хвостовые буферы продолжают появляться.

Есть ли какая-то альтернатива другому буферу или кто-то может поцарапать некоторый код для реализации этого, спасибо.

2 ответа

Что сработало для меня winner-mode - это как отмена, но для оконных конфигураций.

Вот мои настройки:

(winner-mode)
(global-set-key (kbd "<f7>") 'winner-undo)
(global-set-key (kbd "C-<f7>") 'winner-redo)

Также я бы порекомендовал other-window на очень дешевом ярлыке, так как это команда, которая часто используется.

Я поставил его на Cp, так как не оценил непоследовательность в том, что одна из клавиш направления находится так далеко от других. у меня есть previous-line вместо Ch, так что теперь мои клавиши направления nhfb - они почти вместе!

И я действительно не пропустил значения по умолчанию для Ch, так как f1 имеет ту же функциональность.

Итак, я получил какое-то работоспособное решение, но оно не идеально, используя биты из этого ответа: emacs lisp, как получить основной режим буфера?

(defun buffer-mode (buffer-or-string)
Msgstr "Возвращает основной режим, связанный с буфером."
(with-current-buffer буфер или строка (формат "%s" основной режим)))

(defun other-buffer-ex ()
(Интерактивный)
(Коммутатор-буфера
(if (string-equal (buffer-mode (other-buffer))) "comint-mode") (следующий-буфер) (other-buffer))))

Другие вопросы по тегам