Essa solução aceita interrompe a seleção em outro buffer. Quando eu ativo esse gancho, se eu fizer uma seleção em qualquer buffer e invocar ibuffer, a seleção será perdida.
Nephewtom 23/06
8
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:
Existe uma razão para preferir esse método ibuffer-auto-mode?
Nispio 15/10
1
Bem 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.
phils
4
@nispio Acho que prefiro soluções genéricas a ad-hoc. Portanto, nesse sentido, fazer com que os 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 :) #
Sigma
1
Quando uso esse método, continuo recebendo uma mensagem. 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.
Respostas:
A execução do comando
ibuffer-auto-mode
em 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:
fonte
ibuffer
, a seleção será perdida.A maneira certa de fazer isso é introduzir suporte
ibuffer
paraauto-revert-mode
. Isso pode ser alcançado definindobuffer-stale-function
para esses buffers. Indiscutivelmente, comobuffer-menu
suporta esse recurso, seria bom tê-lo a montanteibuffer
também, mas isso não parece ser o caso por enquanto.De qualquer forma, aqui está uma maneira de fazê-lo:
Nota: em geral, seria necessário definir um valor para
revert-buffer-function
, masibuffer
já o faz (está definido comoibuffer-update
)fonte
ibuffer-auto-mode
?auto-revert-mode
usa temporizadores eibuffer-auto-mode
usapost-command-hook
, então há uma diferença óbvia ; mas de imediato eu não sabia dizer se um era preferível ao outro.ibuffer
buffers 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 abusarpost-command-hook
dessa 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 sejag
, 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 oibuffer
buffer está visível ou não.(setq auto-revert-verbose nil)
, potencialmente localmente