0

I'm having a very difficult time diagnosing this problem. Essentially, sometimes a buffer will not update without user interaction. For example, with a terminal buffer (the shell/term/package used does not seem to matter) if I were to call some command that prints multiple lines over a period of time, say cat long_file.txt, I might get the entire file printed out and the buffer updates and scrolls as the file is printed or I might get the first N lines of the file and then the buffer ceases to update until I interact with that buffer (mouse click, key press, anything), or the buffer might not update at all until I interact with it.

Another example is when using a format-on-save, the file is properly formatted but the buffer is not updated to reflect this change until user input occurs.

This happens with any buffer. The includes (but is not limited to) magit, term, vterm, eshell, eat, file buffers, and dired.

This is sporadic. Sometimes it happens as soon as I open emacs, other times it might not happen for the entire duration of my usage of emacs. Most often it seems to occur at some point after emacs is opened.

I'm currently running a significantly minimal config in Emacs 29 to test this, but it's still happening. It doesn't seem to matter if I set any of the auto-revert related variables/modes or not (auto-revert-interval, global-auto-revert-mode, global-auto-revert-non-file-buffers).

Edit:

This is occurring in the latest 29 release of emacs-plus on a Mac M1 running Ventura 13.5.2 (but also on previous versions of Ventura). This is on GUI emacs. I have also verified this happening on the v28 and v30 of emacs-plus, the v29 of emacs-mac, and the v29 binary that the GNU project provides.

14
  • Can you provide a specific, step-by-step recipe to repro the problem, starting from emacs -Q (no init file)? You mention a lot of things, vaguely. Even "non-file buffer" isn't very specific.
    – Drew
    Sep 18 at 17:39
  • 1
    @Drew I can work on a recipe, the problem is testing that a minimum config will reproduce the issue, since I've yet to find anything specific that triggers the issue. As for the term being vague, is there a better term for a buffer that isn't tied to a file? This seems to be the term emacs uses, for example gnu.org/software/emacs/manual/html_node/emacs/… Sep 18 at 17:58
  • 1
    I believe this is happening with any non-file buffer. Magit, term, eshell, vterm, eat, dired. Every non-file buffer I have tried has shown this problem. I'll update it to explicitly state "all non-file buffers" so it's not vague. Sep 18 at 20:02
  • 1
    I've tested now with emacs-plus versions 28, 29, and 30. I've also tested with emacs-mac and the OSX release from GNU. All tested will produce the described issue eventually. To test I've found that a long-running terminal command is ideal and have verified that once the issue crops up in that terminal buffer it will occur in all non-file buffers (tested magit, term, eshell, eat, vterm, elpaca). Still working on a minimal config. Sep 19 at 21:17
  • 1
    I've been able to determine that this is in fact all buffers not merely non-file buffers. I was using apheleia to rule out buffers that have a file associated with them, however I had not considered that apheleia does some work to ensure that the point is restored to the correct place in the buffer and this is triggering the buffer update. Using a less sophisticated formater that doesn't ensure the point is restored properly will result in the buffer not updating until user input. I'll update the question accordingly. Sep 20 at 17:37

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.