Функция похожа на другой буфер, но с фильтрацией
Я ищу способ включить некоторую фильтрацию в метод 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))))