Like if you have a buffer containing hel! and paste in lo world after the third letter you get 4 and 11 respectively?

Emacs has many state variables, are there any that could help me in this case?

  • Could perhaps read point before a paste command and then count the letters in whatever is pasted. The end would be start point + paste text length. Still hard though. – The Unfun Cat Jan 8 '16 at 19:29
  • You can read (point), paste and then read (point) again. – Kaushal Modi Jan 8 '16 at 19:32
  • So after paste you always end up at the end of a paste? Will test... – The Unfun Cat Jan 8 '16 at 19:36

These are just point and mark right after the yank command. Just see the doc for yank or yank-pop. If you want to conserve these positions you could advice yank. Make sure that you save these values as markers or in buffer-local variables!

One more thing: If you want to see these values just once you can call M-: (mark) and M-: (point) right after the yank command.


Here's a quick snippet I came up with that does what you need on brief testing.

(defun my/get-yanked-text-boundaries ()
  "Yank and return the start and end boundaries of the yanked text in the buffer."
  (let ((start (point))
    (call-interactively #'yank)
    (setq end (point))
    (message (format "Start: %0d End: %0d" start end))
    (list start end)))
  • this works but is not the idiomatic way to do it, see Tobias' answer – Joseph Garvin Jan 8 '16 at 20:18
  • JosephGarvin: That's a very good point. Thanks @Tobias. – Kaushal Modi Jan 8 '16 at 20:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.