M-x ibuffer- Selecione um buffer
- Mate esse buffer
Depois que o buffer é eliminado, o buffer de ibuffer reaparece, mas ainda mostra o nome do buffer eliminado na etapa 3.
É possível que o ibuffer atualize automaticamente a lista de buffers?
M-x ibufferDepois que o buffer é eliminado, o buffer de ibuffer reaparece, mas ainda mostra o nome do buffer eliminado na etapa 3.
É possível que o ibuffer atualize automaticamente a lista de buffers?
Respostas:
A execução do comando ibuffer-auto-modeem um buffer Ibuffer faz com que você atualize a exibição após cada comando interativo.
Não parece haver uma maneira direta de ativá-lo automaticamente. Você pode colocar isso no seu arquivo init:
(add-hook 'ibuffer-mode-hook (lambda () (ibuffer-auto-mode 1)))
ibuffer, a seleção será perdida.
A maneira certa de fazer isso é introduzir suporte ibufferpara auto-revert-mode. Isso pode ser alcançado definindo buffer-stale-functionpara esses buffers. Indiscutivelmente, como buffer-menusuporta esse recurso, seria bom tê-lo a montante ibuffertambém, mas isso não parece ser o caso por enquanto.
De qualquer forma, aqui está uma maneira de fazê-lo:
(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)
Nota: em geral, seria necessário definir um valor para revert-buffer-function, mas ibufferjá o faz (está definido como ibuffer-update)
ibuffer-auto-mode?
auto-revert-modeusa temporizadores e ibuffer-auto-modeusa post-command-hook, então há uma diferença óbvia ; mas de imediato eu não sabia dizer se um era preferível ao outro.
ibufferbuffers se comportem como os outros quando se trata de atualizar conteúdo desatualizado parece mais limpo para mim. Além disso, geralmente não gosto de abusar post-command-hookdessa maneira: é realmente um exagero quando você faz algo completamente não relacionado no buffer. Por fim, se for necessário algum tipo de pressionamento de tecla para que o conteúdo seja atualizado, é possível que seja g, que é a maneira explícita de atualizar o conteúdo. Mas concedido, é provavelmente uma questão filosófica :) #
Reverting buffer `*Ibuffer*'. A mensagem é intrusiva, pois me interrompe quando estou trabalhando no minibuffer. A mensagem aparece se o ibufferbuffer está visível ou não.
(setq auto-revert-verbose nil), potencialmente localmente