![]() I guess you’ve found a limitation in the code above. Thanks to Nikolaj Schumacher and Miles Bader on the help-gnu-emacs mailing list for helping out.Īah. ![]() ( let (( xsel-output ( shell-command-to-string "xsel -clipboard -output" ))) ( unless ( string= ( car kill-ring ) xsel-output ) xsel-output ))) Attach callbacks to hooks ( setq interprogram-cut-function 'xsel-cut-function ) ( setq interprogram-paste-function 'xsel-paste-function ) Idea from ) ) Else, nil is returned, so whatever is in the top of the kill-ring will be used. If it is different from the top of the kill-ring (car kill-ring), then return it. Instead, we use of xsel, see - "a command-line program for getting and setting the contents of the X selection" ( unless window-system (when (getenv "DISPLAY") Callback for when user cuts ( defun xsel-cut-function ( text &optional push ) Insert text to temp-buffer, and "send" content to xsel stdin ( with-temp-buffer ( insert text ) I prefer using the "clipboard" selection (the one the typically is used by c-c/c-v) before the primary selection (that uses mouse-select/middle-button-click) ( call-process-region ( point-min ) ( point-max ) "xsel" nil 0 nil "-clipboard" "-input" ))) Call back for when user pastes ( defun xsel-paste-function () Find out what is current selection by xsel. I prefer using the "clipboard" selection (the one the typically is used by c-c/c-v) before the primary selection (that uses mouse-select/middle-button-click) ( setq x-select-enable-clipboard t ) If emacs is run in a terminal, the clipboard- functions have no effect.
0 Comments
Leave a Reply. |