3

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?

3
  • 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. Commented Jan 8, 2016 at 19:29
  • You can read (point), paste and then read (point) again. Commented Jan 8, 2016 at 19:32
  • So after paste you always end up at the end of a paste? Will test... Commented Jan 8, 2016 at 19:36

2 Answers 2

6

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.

1

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."
  (interactive)
  (let ((start (point))
        end)
    (call-interactively #'yank)
    (setq end (point))
    (message (format "Start: %0d End: %0d" start end))
    (list start end)))
2
  • this works but is not the idiomatic way to do it, see Tobias' answer Commented Jan 8, 2016 at 20:18
  • JosephGarvin: That's a very good point. Thanks @Tobias. Commented Jan 8, 2016 at 20:28

Your Answer

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

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