evil-paste-pop broken with interprogram-paste-function

Frank Fischer frank-fischer at shadow-soft.de
Sun Sep 8 09:36:56 CEST 2013


Am Sat, 7 Sep 2013 23:56:38 -0700
schrieb Mark Tran <mark.tran at gmail.com>:

> In my Emacs setup, I have 'interprogram-paste-function' set to a
> function that returns the contents of the OS X system clipboard. This
> prevents 'evil-paste-pop' and 'evil-paste-pop-next' from cycling
> through the kill ring because the evil-paste-* functions call
> 'current-kill', which first calls 'interprogram-paste-function'
> before the kill ring. This causes evil-paste-pop to always paste the
> same value from the system clipboard.

Calling `current-kill` is the same as Emacs' `yank-pop` does, so I
wonder if this problem also occurs if you use `yank-pop` (e.g. C-z to
change to emacs-state and then M-y for yank-pop)?

> Is there anyway to get this working properly with
> interprogram-paste-function?

You could try to write a new command that temporarily sets
`interprogram-paste-function` to nil (untested):

(defun my-paste-pop (count)
  (interactive "p")
  (let (interprogram-paste-function)
    (evil-paste-pop count)))

and then bind it to C-p

(define-key evil-normal-state-map (kbd "C-p") 'my-paste-pop)

Does this help?

Best regards,
Frank




More information about the implementations-list mailing list