Skip lines in rectangular-region-mode that are too short for the rectangle.

This commit is contained in:
Magnar Sveen 2012-07-21 08:45:51 +02:00
parent 56d037319a
commit 05125618aa

View File

@ -39,17 +39,18 @@
(left-column (if (< point-column anchor-column) point-column anchor-column)) (left-column (if (< point-column anchor-column) point-column anchor-column))
(right-column (if (> point-column anchor-column) point-column anchor-column)) (right-column (if (> point-column anchor-column) point-column anchor-column))
(navigation-func (if (< point-line anchor-line) 'next-line 'previous-line))) (navigation-func (if (< point-line anchor-line) 'next-line 'previous-line)))
(move-to-column anchor-column t) (move-to-column anchor-column)
(set-mark (point)) (set-mark (point))
(move-to-column point-column t) (move-to-column point-column)
(mc/save-excursion (mc/save-excursion
(while (not (= anchor-line (line-number-at-pos))) (while (not (= anchor-line (line-number-at-pos)))
(funcall navigation-func) (funcall navigation-func)
(move-to-column right-column t) (move-to-column anchor-column)
(move-to-column anchor-column t) (when (= anchor-column (current-column))
(set-mark (point)) (set-mark (point))
(move-to-column point-column t) (move-to-column point-column)
(mc/create-fake-cursor-at-point))))) (when (= point-column (current-column))
(mc/create-fake-cursor-at-point)))))))
(defun rrm/switch-to-multiple-cursors (&rest forms) (defun rrm/switch-to-multiple-cursors (&rest forms)
(interactive) (interactive)