To zaakceptowane rozwiązanie przerywa wybór w innym buforze. Po włączeniu tego zaczepu, jeśli dokonam wyboru w dowolnym buforze, a następnie wywołam ibuffer, wybór zostanie utracony.
nephewtom
8
Właściwym sposobem na to jest wprowadzenie wsparcia ibufferdla auto-revert-mode. Można to osiągnąć, definiując buffer-stale-functiondla tych buforów. Być może, skoro buffer-menuobsługuje tę funkcję, dobrze byłoby mieć ją również wcześniej ibuffer, ale wydaje się, że tak nie jest na razie.
Czy istnieje powód, aby preferować tę metodę ibuffer-auto-mode?
nispio
1
Dobrze auto-revert-modeużywa timerów i ibuffer-auto-modeużywa post-command-hook, więc jest oczywista różnica ; ale z drugiej strony nie mogłem powiedzieć, czy jedno jest lepsze od drugiego.
phils
4
@nispio Chyba wolę ogólne rozwiązania od rozwiązań ad-hoc. W tym sensie tworzenie ibufferbuforów zachowuje się jak inne, jeśli chodzi o odświeżanie przestarzałej zawartości, dla mnie jest czystsze. Poza tym ogólnie nie lubię nadużywać w post-command-hookten sposób: to naprawdę przesada, gdy zdarzy się, że zrobisz coś zupełnie niezwiązanego z buforem. Wreszcie, jeśli do odświeżenia treści jest wymagane naciśnięcie klawisza, równie dobrze może to być gjawny sposób aktualizacji treści. Ale oczywiście jest to kwestia filozoficzna :)
Sigma
1
Gdy korzystam z tej metody, ciągle pojawia się komunikat Reverting buffer `*Ibuffer*'. Wiadomość jest natrętna, ponieważ przeszkadza mi, gdy pracuję w minibuforze. Komunikat pojawia się, czy ibufferbufor jest widoczny, czy nie.
Odpowiedzi:
Uruchomienie polecenia
ibuffer-auto-mode
w buforze Ibuffer powoduje odświeżenie ekranu po każdym poleceniu interaktywnym.Wydaje się, że nie ma bezpośredniego sposobu na automatyczną aktywację. Możesz umieścić to w swoim pliku init:
źródło
ibuffer
, wybór zostanie utracony.Właściwym sposobem na to jest wprowadzenie wsparcia
ibuffer
dlaauto-revert-mode
. Można to osiągnąć, definiującbuffer-stale-function
dla tych buforów. Być może, skorobuffer-menu
obsługuje tę funkcję, dobrze byłoby mieć ją również wcześniejibuffer
, ale wydaje się, że tak nie jest na razie.Tak czy inaczej, oto sposób na zrobienie tego:
Uwaga: ogólnie rzecz biorąc, należałoby zdefiniować wartość
revert-buffer-function
, aleibuffer
już to robi (jest ustawiona naibuffer-update
)źródło
ibuffer-auto-mode
?auto-revert-mode
używa timerów iibuffer-auto-mode
używapost-command-hook
, więc jest oczywista różnica ; ale z drugiej strony nie mogłem powiedzieć, czy jedno jest lepsze od drugiego.ibuffer
buforów zachowuje się jak inne, jeśli chodzi o odświeżanie przestarzałej zawartości, dla mnie jest czystsze. Poza tym ogólnie nie lubię nadużywać wpost-command-hook
ten sposób: to naprawdę przesada, gdy zdarzy się, że zrobisz coś zupełnie niezwiązanego z buforem. Wreszcie, jeśli do odświeżenia treści jest wymagane naciśnięcie klawisza, równie dobrze może to byćg
jawny sposób aktualizacji treści. Ale oczywiście jest to kwestia filozoficzna :)Reverting buffer `*Ibuffer*'.
Wiadomość jest natrętna, ponieważ przeszkadza mi, gdy pracuję w minibuforze. Komunikat pojawia się, czyibuffer
bufor jest widoczny, czy nie.(setq auto-revert-verbose nil)
, potencjalnie lokalnie