]> code.delx.au - gnu-emacs/blobdiff - lisp/windmove.el
(gud-pdb-marker-regexp): Allow : and \ in file name.
[gnu-emacs] / lisp / windmove.el
index e171225409aaa9a8d2f11c818a03336af190b0db..fc5e864391c40d7f9f8ebccdfd0bcf18bd3ba004 100644 (file)
@@ -1,4 +1,4 @@
-;;; windmove.el --- directional window-selection routines.
+;;; windmove.el --- directional window-selection routines
 ;;
 ;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
 ;;
 ;;
 ;; Put the following line in your `.emacs' file:
 ;;
-;;     (windmove-default-keybindings)    ; default keybindings
+;;     (windmove-default-keybindings)         ; shifted arrow keys
+;;
+;; or
+;;
+;;     (windmove-default-keybindings 'hyper)  ; etc.
+;;
+;; to use another modifier key.
 ;;
 ;;
 ;; If you wish to enable wrap-around, also add a line like:
 ;; causes the occasional creation of a "lost column" between windows,
 ;; so that two adjacent windows do not actually touch, you may want to
 ;; increase the value of `windmove-window-distance-delta' to 2 or 3:
-;;     
+;;
 ;;     (setq windmove-window-distance-delta 2)
 ;;
 
@@ -310,7 +316,7 @@ MIN-N."
 (defun windmove-frame-edges (window)
   "Return (X-MIN Y-MIN X-MAX Y-MAX) for the frame containing WINDOW.
 If WINDOW is nil, return the edges for the selected frame.
-(X-MIN, Y-MIN) is the zero-based coordinate of the top-left corner
+\(X-MIN, Y-MIN) is the zero-based coordinate of the top-left corner
 of the frame; (X-MAX, Y-MAX) is the zero-based coordinate of the
 bottom-right corner of the frame.
 For example, if a frame has 76 rows and 181 columns, the return value
@@ -543,7 +549,7 @@ If no window is at direction DIR, an error is signaled."
 With no prefix argument, or with prefix argument equal to zero,
 \"left\" is relative to the position of point in the window; otherwise
 it is relative to the top edge (for positive ARG) or the bottom edge
-(for negative ARG) of the current window.
+\(for negative ARG) of the current window.
 If no window is at the desired location, an error is signaled."
   (interactive "P")
   (windmove-do-window-select 'left arg))
@@ -576,7 +582,7 @@ If no window is at the desired location, an error is signaled."
 With no prefix argument, or with prefix argument equal to zero,
 \"down\" is relative to the position of point in the window; otherwise
 it is relative to the left edge (for positive ARG) or the right edge
-(for negative ARG) of the current window.
+\(for negative ARG) of the current window.
 If no window is at the desired location, an error is signaled."
   (interactive "P")
   (windmove-do-window-select 'down arg))
@@ -589,13 +595,16 @@ If no window is at the desired location, an error is signaled."
 ;; probably want to use different bindings in that case.
 
 ;;;###autoload
-(defun windmove-default-keybindings ()
-  "Set up default keybindings for `windmove'."
+(defun windmove-default-keybindings (&optional modifier)
+  "Set up keybindings for `windmove'.
+Keybindings are of the form MODIFIER-{left,right,up,down}.
+Default MODIFIER is 'shift."
   (interactive)
-  (global-set-key [(shift left)]  'windmove-left)
-  (global-set-key [(shift up)]    'windmove-up)
-  (global-set-key [(shift right)] 'windmove-right)
-  (global-set-key [(shift down)]  'windmove-down))
+  (unless modifier (setq modifier 'shift))
+  (global-set-key (vector (list modifier 'left))  'windmove-left)
+  (global-set-key (vector (list modifier 'right)) 'windmove-right)
+  (global-set-key (vector (list modifier 'up))    'windmove-up)
+  (global-set-key (vector (list modifier 'down))  'windmove-down))
 
 
 (provide 'windmove)