2016-08-12 4 views
0

Учитывая начальную позицию (b) и конечную позицию (e), я хочу выполнить одно и то же действие, которое вы делаете, нажимая movement keys with shift от b до e, но в elisp. Выбор может быть отменен любым нажатием клавиши перемещения без сдвига, поэтому set-mark-command не то, что я хочу.Программный сдвиг выбора

ответ

1

Вы можете попробовать:

(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))) 

Этот код в основном снят с handle-shift-selection.

+0

Это работает. Благодаря! – AhLeung