hlissner / evil-multiedit

Multiple cursors for evil-mode, based on iedit

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

run multiedit alongside an evil motion?

mohkale opened this issue · comments

So you can specify the region which you want to multiedit without first going into visual state.

Eg.

(general-define-key
  :states 'multiedit
  "g." 'hydra-evil-multiedit/body
  "gk" 'evil-multiedit-prev
  "gj" 'evil-multiedit-next)

now if I want to select and then iedit all occurences of evil-multiedit, because - isn't in my syntax entry for elisp mode, I have to first goto visual state, then select evil-multiedit and then run evil-multiedit-match-all.

From the "gk" line, this would be "v2t-g*" where g* is my binding for evil-multiedit-match-all.

instead I'd rather use the more vim/evil like "g*2t-". no need for visual state.

I've hacked in this kind of functionality

(defun evil-multiedit--multiedit (beg end)
  (evil-visual-select beg
                      (max 0 (- end 1)))
  (evil-multiedit-match-and-next))

(evil-define-operator evil-multiedit (beg end)
  :repeat nil
  (if (evil-get-command-property 'evil-multiedit :move-point)
      (save-excursion
        (evil-multiedit--multiedit beg end))
    (evil-multiedit--multiedit beg end)))

(defun evil-multiedit--multiedit-all (beg end)
  (evil-visual-select beg
                      (max 0 (- end 1)))
  (evil-multiedit-match-all))

(evil-define-operator evil-multiedit-all (beg end)
  :repeat nil
  (if (evil-get-command-property 'evil-multiedit-all :move-point)
      (save-excursion
        (evil-multiedit--multiedit-all beg end))
    (evil-multiedit--multiedit-all beg end)))

This is a duplicate of #16.

evil-multiedit-operator was implemented in ebb1b71. That should be what you're asking for.