aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReuben Thomas2012-07-14 10:19:07 +0800
committerChong Yidong2012-07-14 10:19:07 +0800
commitbe755c79bdba0a187af6541b0fea7d55d5b23754 (patch)
treecb266a82ec694a44d3714c59e7b122d640fae16b
parented9265fc7dc83341b2a807f114dcdd4d170d7e0e (diff)
downloademacs-be755c79bdba0a187af6541b0fea7d55d5b23754.tar.gz
emacs-be755c79bdba0a187af6541b0fea7d55d5b23754.zip
* rect.el (copy-rectangle-as-kill): New command.
* lisp/rect.el, lisp/register.el: Move bindings to bindings.el. * lisp/bindings.el: Consolidate ctl-x-r-map bindings. Bind copy-rectangle-as-kill to C-x r w. Fixes: debbugs:739
-rw-r--r--etc/NEWS3
-rw-r--r--lisp/ChangeLog11
-rw-r--r--lisp/bindings.el25
-rw-r--r--lisp/rect.el17
-rw-r--r--lisp/register.el16
5 files changed, 45 insertions, 27 deletions
diff --git a/etc/NEWS b/etc/NEWS
index 0132a3a9ed7..fc34e31f1d5 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -158,6 +158,9 @@ character when doing minibuffer filename prompts.
158 158
159** `goto-char' is now bound to `M-g c'. 159** `goto-char' is now bound to `M-g c'.
160 160
161** New command `C-x r M-w' (copy-rectangle-as-kill).
162It copies the region-rectangle as the last rectangle kill.
163
161** New input method `vietnamese-vni'. 164** New input method `vietnamese-vni'.
162 165
163 166
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index dd510bbcf58..fb1eae49dba 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,14 @@
12012-07-14 Chong Yidong <cyd@gnu.org>
2
3 * bindings.el: Consolidate ctl-x-r-map bindings. Bind
4 copy-rectangle-as-kill to C-x r w.
5
6 * rect.el, register.el: Move bindings to bindings.el.
7
82012-07-14 Reuben Thomas <rrt@sc3d.org>
9
10 * rect.el (copy-rectangle-as-kill): New command (Bug#739).
11
12012-07-13 Andreas Schwab <schwab@linux-m68k.org> 122012-07-13 Andreas Schwab <schwab@linux-m68k.org>
2 13
3 * emacs-lisp/cl.el (labels): Remove spurious quote. (Bug#11938) 14 * emacs-lisp/cl.el (labels): Remove spurious quote. (Bug#11938)
diff --git a/lisp/bindings.el b/lisp/bindings.el
index 96700c6dc26..e0555a17b15 100644
--- a/lisp/bindings.el
+++ b/lisp/bindings.el
@@ -1183,7 +1183,30 @@ if `inhibit-field-text-motion' is non-nil."
1183(define-key ctl-x-5-map "m" 'compose-mail-other-frame) 1183(define-key ctl-x-5-map "m" 'compose-mail-other-frame)
1184 1184
1185 1185
1186(defvar ctl-x-r-map (make-sparse-keymap) 1186(defvar ctl-x-r-map
1187 (let ((map (make-sparse-keymap)))
1188 (define-key map "c" 'clear-rectangle)
1189 (define-key map "k" 'kill-rectangle)
1190 (define-key map "d" 'delete-rectangle)
1191 (define-key map "y" 'yank-rectangle)
1192 (define-key map "o" 'open-rectangle)
1193 (define-key map "t" 'string-rectangle)
1194 (define-key map "N" 'rectangle-number-lines)
1195 (define-key map "\M-w" 'copy-rectangle-as-kill)
1196 (define-key map "\C-@" 'point-to-register)
1197 (define-key map [?\C-\ ] 'point-to-register)
1198 (define-key map " " 'point-to-register)
1199 (define-key map "j" 'jump-to-register)
1200 (define-key map "s" 'copy-to-register)
1201 (define-key map "x" 'copy-to-register)
1202 (define-key map "i" 'insert-register)
1203 (define-key map "g" 'insert-register)
1204 (define-key map "r" 'copy-rectangle-to-register)
1205 (define-key map "n" 'number-to-register)
1206 (define-key map "+" 'increment-register)
1207 (define-key map "w" 'window-configuration-to-register)
1208 (define-key map "f" 'frame-configuration-to-register)
1209 map)
1187 "Keymap for subcommands of C-x r.") 1210 "Keymap for subcommands of C-x r.")
1188(define-key ctl-x-map "r" ctl-x-r-map) 1211(define-key ctl-x-map "r" ctl-x-r-map)
1189 1212
diff --git a/lisp/rect.el b/lisp/rect.el
index 574d96a8c10..1bf7364e20d 100644
--- a/lisp/rect.el
+++ b/lisp/rect.el
@@ -29,16 +29,6 @@
29;; ### NOTE: this file was almost completely rewritten by Didier Verna 29;; ### NOTE: this file was almost completely rewritten by Didier Verna
30;; <didier@xemacs.org> in July 1999. 30;; <didier@xemacs.org> in July 1999.
31 31
32;;; Global key bindings
33
34;;;###autoload (define-key ctl-x-r-map "c" 'clear-rectangle)
35;;;###autoload (define-key ctl-x-r-map "k" 'kill-rectangle)
36;;;###autoload (define-key ctl-x-r-map "d" 'delete-rectangle)
37;;;###autoload (define-key ctl-x-r-map "y" 'yank-rectangle)
38;;;###autoload (define-key ctl-x-r-map "o" 'open-rectangle)
39;;;###autoload (define-key ctl-x-r-map "t" 'string-rectangle)
40;;;###autoload (define-key ctl-x-r-map "N" 'rectangle-number-lines)
41
42;;; Code: 32;;; Code:
43 33
44;; FIXME: this function should be replaced by `apply-on-rectangle' 34;; FIXME: this function should be replaced by `apply-on-rectangle'
@@ -236,6 +226,13 @@ even beep.)"
236 (signal 'text-read-only (list (current-buffer))))))) 226 (signal 'text-read-only (list (current-buffer)))))))
237 227
238;;;###autoload 228;;;###autoload
229(defun copy-rectangle-as-kill (start end)
230 "Copy the region-rectangle and save it as the last killed one."
231 (interactive "r")
232 (setq killed-rectangle (extract-rectangle start end))
233 (setq deactivate-mark t))
234
235;;;###autoload
239(defun yank-rectangle () 236(defun yank-rectangle ()
240 "Yank the last killed rectangle with upper left corner at point." 237 "Yank the last killed rectangle with upper left corner at point."
241 (interactive "*") 238 (interactive "*")
diff --git a/lisp/register.el b/lisp/register.el
index 21fcff2d148..52c236e49be 100644
--- a/lisp/register.el
+++ b/lisp/register.el
@@ -34,22 +34,6 @@
34(declare-function semantic-tag-buffer "semantic/tag" (tag)) 34(declare-function semantic-tag-buffer "semantic/tag" (tag))
35(declare-function semantic-tag-start "semantic/tag" (tag)) 35(declare-function semantic-tag-start "semantic/tag" (tag))
36 36
37;;; Global key bindings
38
39(define-key ctl-x-r-map "\C-@" 'point-to-register)
40(define-key ctl-x-r-map [?\C-\ ] 'point-to-register)
41(define-key ctl-x-r-map " " 'point-to-register)
42(define-key ctl-x-r-map "j" 'jump-to-register)
43(define-key ctl-x-r-map "s" 'copy-to-register)
44(define-key ctl-x-r-map "x" 'copy-to-register)
45(define-key ctl-x-r-map "i" 'insert-register)
46(define-key ctl-x-r-map "g" 'insert-register)
47(define-key ctl-x-r-map "r" 'copy-rectangle-to-register)
48(define-key ctl-x-r-map "n" 'number-to-register)
49(define-key ctl-x-r-map "+" 'increment-register)
50(define-key ctl-x-r-map "w" 'window-configuration-to-register)
51(define-key ctl-x-r-map "f" 'frame-configuration-to-register)
52
53;;; Code: 37;;; Code:
54 38
55(cl-defstruct 39(cl-defstruct