[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#23749: 24.3.50; can't make the cursor to the end of a buffer when th
From: |
Samuel Lê |
Subject: |
bug#23749: 24.3.50; can't make the cursor to the end of a buffer when that buffer is visible |
Date: |
Sun, 12 Jun 2016 17:44:26 +0200 |
I managed to do what I wanted with:
(defun insert-into-buffer (buffer text)
(let ((buffer-window (get-buffer-window buffer)))
(if (not buffer-window)
(with-current-buffer buffer
(beginning-of-line)
(insert text)
(goto-char (point-max)))
(with-current-buffer buffer
(beginning-of-line)
(insert text)
(set-window-point (get-buffer-window) (point-max))))))
Thanks!
On 6/12/16, Noam Postavsky <npostavs@users.sourceforge.net> wrote:
> tag 23749 + notabug
> quit
>
> On Sat, Jun 11, 2016 at 10:01 PM, Samuel Lê <samuel.le@gmail.com> wrote:
>> - run "emacs -Q" from command line.
>> - split emacs screen (C-x 2)
>> - on one side open an elisp code (say test.el)
>> - on the other side put the *scratch* buffer
>> - in test.el, enter (with-current-buffer "*scratch* (insert "test\n")
>> (goto-char (point-max)))
>> - then press C-x e to evaluate that command
>> - it inserts "test" in *scratch* buffer but doesnt go at the end of the
>> - buffer.
>>
>> It works fine when buffer *scratch* is not visible.
>>
>> Thanks!
>>
>> In GNU Emacs 24.3.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.10)
>
> I see the same with 25.0.95. I think it's not a bug, it's simply that
> the window point is stored separately. You can use
>
> (with-current-buffer "*scratch*"
> (insert "test\n")
> (set-window-point (get-buffer-window) (point-max)))
>
> to set it. Or if there are multiple windows and you want to set the
> point in all of them:
>
> (with-current-buffer "*scratch*"
> (insert "test\n")
> (dolist (w (get-buffer-window-list))
> (set-window-point w (point-max))))
>