2016-08-12 1 views
0

Gegeben eine Anfangsposition (b) und eine Endposition (e), ich möchte die gleiche Aktion, die man tut, indem Sie die von b nach e, aber in elisp. Die Auswahl kann durch eine beliebige Bewegungstaste ohne Verschiebung abgebrochen werden, also ist set-mark-command nicht was ich will.Programmatically schiebe Auswahl

Antwort

1

können Sie versuchen:

(defun my-mark-region-as-shifted (other-end) 
    (let ((pos (point))) 
    (goto-char other-end) 
    (setq-local transient-mark-mode 
       (cons 'only 
         (unless (eq transient-mark-mode 'lambda) 
         transient-mark-mode))) 
    (push-mark nil nil t) 
    (goto-char pos))) 

Dieser Code wird hauptsächlich von handle-shift-selection angehoben.

+0

Es funktioniert. Vielen Dank! – AhLeung