M-x ibuffer
- Выберите буфер
- Убей этот буфер
После уничтожения буфера вновь появляется буфер ibuffer, но он по-прежнему показывает имя буфера, уничтоженное на шаге 3.
Возможно ли автоматическое обновление списка буферов ibuffer?
M-x ibuffer
После уничтожения буфера вновь появляется буфер ibuffer, но он по-прежнему показывает имя буфера, уничтоженное на шаге 3.
Возможно ли автоматическое обновление списка буферов ibuffer?
Ответы:
Запуск команды ibuffer-auto-mode
в буфере Ibuffer заставляет ее обновлять отображение после каждой интерактивной команды.
Кажется, нет прямого способа активировать его автоматически. Вы можете поместить это в ваш файл инициализации:
(add-hook 'ibuffer-mode-hook (lambda () (ibuffer-auto-mode 1)))
ibuffer
, выбор теряется.
Правильный способ сделать это заключается в ознакомлении поддержки в ibuffer
течение auto-revert-mode
. Это может быть достигнуто путем определения buffer-stale-function
этих буферов. Можно утверждать, buffer-menu
что , поскольку поддерживает эту функцию, было бы хорошо, чтобы она ibuffer
тоже была в апстриме, но сейчас это не так.
Во всяком случае, вот способ сделать это:
(defun my-ibuffer-stale-p (&optional noconfirm)
;; let's reuse the variable that's used for 'ibuffer-auto-mode
(frame-or-buffer-changed-p 'ibuffer-auto-buffers-changed))
(defun my-ibuffer-auto-revert-setup ()
(set (make-local-variable 'buffer-stale-function)
'my-ibuffer-stale-p)
(set (make-local-variable 'auto-revert-verbose) nil)
(auto-revert-mode 1))
(add-hook 'ibuffer-mode-hook 'my-ibuffer-auto-revert-setup)
Примечание: в общем случае нужно определить значение для revert-buffer-function
, но оно ibuffer
уже сделано (установлено ibuffer-update
)
ibuffer-auto-mode
?
auto-revert-mode
использует таймеры и ibuffer-auto-mode
использует post-command-hook
, так что есть очевидная разница ; но я не мог сказать, был ли один предпочтительнее другого.
ibuffer
буферы ведут себя как другие, когда дело доходит до обновления устаревшего контента, я чувствую себя чище. Кроме того, я, как правило, не люблю злоупотреблять post-command-hook
таким образом: это действительно излишне, когда вы делаете что-то совершенно не связанное с буфером. Наконец, если для обновления содержимого требуется какое-то нажатие клавиши, это также может быть g
, что является явным способом обновления содержимого. Но само собой разумеющееся, это, вероятно, философская проблема :)
Reverting buffer `*Ibuffer*'.
. Сообщение навязчиво, потому что оно продолжает мешать мне, когда я работаю в минибуфере. Сообщение появляется независимо от того, ibuffer
виден буфер или нет.
(setq auto-revert-verbose nil)
, потенциально локально