;;; multiple-cursors.el --- An experiment in multiple cursors for emacs. ;; Copyright (C) 2012 Magnar Sveen ;; Author: Magnar Sveen ;; Keywords: editing cursors ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; An experiment in multiple cursors for emacs. Still very much in beta. ;; ;; The basic concept works, but there are definitely some kinks to work out. ;; This extension is dependent on the mark-multiple library. ;; https://github.com/magnars/mark-multiple.el ;; ** Usage ;; I've set up my key-bindings like so: ;; ;; ;; Experimental multiple-cursors ;; (global-set-key (kbd "C-S-c C-S-c") 'mc/add-multiple-cursors-to-region-lines) ;; (global-set-key (kbd "C-S-c C-e") 'mc/edit-ends-of-lines) ;; (global-set-key (kbd "C-S-c C-a") 'mc/edit-beginnings-of-lines) ;; ;; To get out of multiple-cursors-mode, press `C-g`. ;; ** Contribute ;; There's plenty wrong with this implementation still. I'm actively trying things ;; out, and also working on combining it with ;; [mark-multiple.el](https://github.com/magnars/mark-multiple.el) to get a more ;; comprehensive tool. ;; ;; Still, if you've got something to contribute, please do not hesitate to open ;; an issue, and we can take a look together before you dive into the elisp. :-) ;; ;; You'll find the repo at: ;; ;; https://github.com/magnars/multiple-cursors.el ;; ## Combining with mark-multiple ;; ;; Right now you can go from multiple marks to multiple cursors with C-g. ;; ;; The other way around is a bit more tricky: ;; ;; * What to do about overlapping marks? ;; * Expanding the marks should be possible, for instance using `mark-word` or ;; `expand-region` ;; * Killing or copying needs to keep a kill-ring for each cursor. ;; ;; So basically `mark-multiple` isn't ready for prime time as a full blown multiple ;; marks library. For this to work as expected, I think parts of mark-multiple ;; needs to be rewritten, and possibly integrated into multiple-cursors. ;; ;; For now, mark-multiple is an excellent tool to place your cursors where you need ;; them to be. ;;; Code: (require 'multiple-cursors-core) (require 'mc-edit-lines) (require 'mc-cycle-cursors) (require 'mc-mark-more) (require 'mc-mark-multiple-integration) (require 'rectangular-region-mode) (provide 'multiple-cursors) ;;; multiple-cursors.el ends here