mirror of
https://github.com/magnars/multiple-cursors.el.git
synced 2025-10-14 05:13:05 +00:00
Added mc-version of mark-all-like-this
This commit is contained in:
parent
c9548eae5b
commit
0d89125f60
@ -79,3 +79,9 @@ Feature: Marking multiple parts of the buffer
|
||||
And I press "C-- M-<"
|
||||
And I type "more"
|
||||
Then I should see "Here's text, more and more"
|
||||
|
||||
Scenario: Marking all
|
||||
When I insert "Here's text, text and text"
|
||||
And I select "text"
|
||||
And I press "M-!"
|
||||
Then I should have 3 cursors
|
||||
|
@ -22,6 +22,7 @@
|
||||
(global-set-key (kbd "C->") 'mark-next-like-this)
|
||||
(global-set-key (kbd "M->") 'mc/mark-next-like-this)
|
||||
(global-set-key (kbd "M-<") 'mc/mark-previous-like-this)
|
||||
(global-set-key (kbd "M-!") 'mc/mark-all-like-this)
|
||||
(global-set-key (kbd "H-SPC") 'set-rectangular-region-anchor)
|
||||
(switch-to-buffer
|
||||
(get-buffer-create "*multiple-cursors*"))
|
||||
|
@ -106,4 +106,27 @@ With zero ARG, skip the last one and mark next."
|
||||
(multiple-cursors-mode 1)
|
||||
(multiple-cursors-mode 0)))
|
||||
|
||||
;;;###autoload
|
||||
(defun mc/mark-all-like-this ()
|
||||
"Find and mark all the parts of the buffer matching the currently active region"
|
||||
(interactive)
|
||||
(unless (region-active-p)
|
||||
(error "Mark a region to match first."))
|
||||
(mc/remove-fake-cursors)
|
||||
(let ((master (point))
|
||||
(case-fold-search nil)
|
||||
(point-first (< (point) (mark)))
|
||||
(re (regexp-opt (mc/region-strings))))
|
||||
(mc/save-excursion
|
||||
(goto-char 0)
|
||||
(while (search-forward-regexp re nil t)
|
||||
(push-mark (match-beginning 0))
|
||||
(when point-first (exchange-point-and-mark))
|
||||
(unless (= master (point))
|
||||
(mc/create-fake-cursor-at-point))
|
||||
(when point-first (exchange-point-and-mark)))))
|
||||
(if (> (mc/num-cursors) 1)
|
||||
(multiple-cursors-mode 1)
|
||||
(multiple-cursors-mode 0)))
|
||||
|
||||
(provide 'mc-mark-more)
|
||||
|
Loading…
x
Reference in New Issue
Block a user