leoliu pushed a commit to branch master in repository elpa. commit 2dfdf705005169f20fe7632519c981cdc1870ea9 Author: Leo Liu <sdl....@gmail.com> Date: Tue Oct 8 18:42:51 2013 +0800
New command easy-kill-mark-region --- README.rst | 2 ++ easy-kill.el | 22 +++++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index 7ae3f96..8579e4e 100644 --- a/README.rst +++ b/README.rst @@ -22,6 +22,8 @@ Keys (customisable) immediately following ``M-w``: #. ``b`` -> ``buffer-file-name`` or ``default-directory`` #. ``C-w`` -> kill current region #. ``+``, ``-`` and ``0..9`` -> expand/shrink selection +#. ``C-@`` or ``C-SPC`` -> turn current selection into an active + region The following `screenshot <http://i.imgur.com/8TNgPly.png>`_ shows ``M-w l`` in action: diff --git a/easy-kill.el b/easy-kill.el index 59554d9..48319d6 100644 --- a/easy-kill.el +++ b/easy-kill.el @@ -51,6 +51,8 @@ CHAR is used immediately following `easy-kill' to select THING." (define-key map "+" 'easy-kill-expand) (define-key map "=" 'easy-kill-expand) (define-key map "\C-w" 'easy-kill-region) + (define-key map (kbd "C-SPC") 'easy-kill-mark-region) + (define-key map (kbd "C-@") 'easy-kill-mark-region) (mapc (lambda (d) (define-key map (number-to-string d) 'easy-kill-digit-argument)) (number-sequence 0 9)) @@ -180,8 +182,21 @@ candidate property instead." (if (= beg end) (easy-kill-message-nolog "Empty region") (setq easy-kill-exit t) + (easy-kill-adjust-candidate nil "") (kill-region beg end)))) +(defun easy-kill-mark-region () + (interactive) + (let ((beg (overlay-start easy-kill-candidate)) + (end (overlay-end easy-kill-candidate))) + (if (= beg end) + (easy-kill-message-nolog "Empty region") + (setq easy-kill-exit t) + (easy-kill-adjust-candidate nil "") + (set-mark beg) + (goto-char end) + (activate-mark)))) + (defun easy-kill-activate-keymap () (let ((map (easy-kill-map))) (set-temporary-overlay-map @@ -191,7 +206,7 @@ candidate property instead." (with-demoted-errors (or (and (not (prog1 easy-kill-exit (setq easy-kill-exit nil))) - (eq this-command (lookup-key map (this-command-keys)))) + (eq this-command (lookup-key map (this-command-keys-vector)))) (when easy-kill-candidate ;; Do not modify the clipboard here because it will ;; intercept pasting from other programs and @@ -213,6 +228,7 @@ Temporally activate additional key bindings as follows: 0..9 => expand current selection by that number; +,=/- => expand or shrink current selection by 1; C-w => kill current selection; + C-SPC => turn current selection into active region others => save current selection to kill ring and exit." (interactive "p") (setq easy-kill-candidate @@ -240,8 +256,8 @@ Temporally activate additional key bindings as follows: (defun easy-kill-on-buffer-file-name (n) "Get `buffer-file-name' or `default-directory'. -If N is zero, remove the directory part; negative, remove the -file name party; positive, full path." +If N is zero, remove the directory part; -, remove the file name +party; +, full path." (let ((file (or buffer-file-name default-directory))) (when file (let* ((file (directory-file-name file))