Ich bin nicht sicher, ob ich Ihre Frage richtig verstehe, aber dazu ein paar Gedanken:
1) Wenn die shift-select-mode
Variable auf festgelegt ist, t
wird der Bereich durch alle Kombinationen von Shiftund einem Bewegungspunkt des Befehls temporär aktiviert und erweitert:
- S-C-<right>: erweitern Sie die Region um ein Wort auf der rechten Seite
- S-<right>: erweitern Sie die Region um ein Zeichen auf der rechten Seite
Sie können shift-select-mode
entweder die customize
Infrastruktur einstellen :
M-x
customize-variable
RETshift-select-mode
RET
oder in deiner init-Datei:
(setq shift-select-mode t)
2) Ausgehend von Ihrem Beispielcode können Sie einen Befehl schreiben, der die Region aktiviert und auf folgende Weise erweitert:
(defun foo () "" (interactive) ;; this is a command (i.e. can be interactively used) (when (not (region-active-p)) ;; if the region is not active... (push-mark (point) t t)) ;; ... set the mark and activate it (backward-word)) ;; move point ;; Bind the command to a key (global-set-key (kbd "C-S-<left>") 'foo)