branch: master commit a80f95c015b32d8bd79d6fb93f27eaad3a603e8f Author: Oleh Krehel <ohwoeo...@gmail.com> Commit: Oleh Krehel <ohwoeo...@gmail.com>
Add "X" dispatch to kill a word without moving there * avy.el (avy-dispatch-alist): Extend. (avy-action-kill-move): Rename from `avy-action-kill'. (avy-action-kill-stay): New defun. To kill a word without moving there: 1. `avy-goto-word-1' or `avy-goto-char'. 2. word's letter. 3. X. 4. words' overlay chars. --- avy.el | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/avy.el b/avy.el index a94b87b..20edd7b 100644 --- a/avy.el +++ b/avy.el @@ -120,7 +120,8 @@ If the commands isn't on the list, `avy-style' is used." (const :tag "De Bruijn" de-bruijn)))) (defcustom avy-dispatch-alist - '((?x . avy-action-kill) + '((?x . avy-action-kill-move) + (?X . avy-action-kill-stay) (?m . avy-action-mark) (?n . avy-action-copy)) "List of actions for `avy-handler-default'. @@ -134,7 +135,8 @@ pressed during the dispatch, ACTION is set to replace the default :value-type (choice (const :tag "Mark" avy-action-mark) (const :tag "Copy" avy-action-copy) - (const :tag "Kill" avy-action-kill)))) + (const :tag "Kill and move point" avy-action-kill-move) + (const :tag "Kill" avy-action-kill-stay)))) (defcustom avy-background nil "When non-nil, a gray background will be added during the selection." @@ -505,13 +507,22 @@ Set `avy-style' according to COMMMAND as well." (select-window (cdr dat)) (goto-char (car dat)))) -(defun avy-action-kill (pt) - "Kill sexp at PT." +(defun avy-action-kill-move (pt) + "Kill sexp at PT and move there." (goto-char pt) (forward-sexp) (kill-region pt (point)) (message "Killed: %s" (current-kill 0))) +(defun avy-action-kill-stay (pt) + "Kill sexp at PT." + (save-excursion + (goto-char pt) + (forward-sexp) + (kill-region pt (point)) + (just-one-space)) + (message "Killed: %s" (current-kill 0))) + (defun avy--process (candidates overlay-fn) "Select one of CANDIDATES using `avy-read'. Use OVERLAY-FN to visualize the decision overlay."