(menu-bar-games-menu): Fix typo in menu help string.
[bpt/emacs.git] / lisp / bindings.el
index b3ea8e5..f9ca0f0 100644 (file)
@@ -1,7 +1,7 @@
 ;;; bindings.el --- define standard key bindings and some variables
 
-;; Copyright (C) 1985,86,87,92,93,94,95,96,99,2000, 2001
-;;   Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1992, 1993, 1994, 1995, 1996, 1999, 2000,
+;;   2001, 2005  Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
 ;; Keywords: internal
@@ -165,7 +165,8 @@ corresponding to the mode line clicked."
             (eval-when-compile
               (let ((map (make-sparse-keymap)))
                 (define-key map [mode-line mouse-3] 'mode-line-change-eol)
-                map))))
+                map))
+            'mouse-face 'mode-line-highlight))
       (push (cons eol (cons mnemonic desc)) mode-line-eol-desc-cache)
       desc)))
 
@@ -177,7 +178,8 @@ corresponding to the mode line clicked."
                             "Input method: "
                             current-input-method
                             ".  mouse-2: disable, mouse-3: describe")
-                 local-map ,mode-line-input-method-map))
+                 local-map ,mode-line-input-method-map
+                 mouse-face mode-line-highlight))
     ,(propertize
       "%z"
       'help-echo
@@ -191,6 +193,7 @@ corresponding to the mode line clicked."
                          " buffer; mouse-3: describe coding system")
                (concat "Unibyte " (symbol-name buffer-file-coding-system)
                        " buffer")))))
+      'mouse-face 'mode-line-highlight
       'local-map mode-line-coding-system-map)
     (:eval (mode-line-eol-desc)))
   "Mode-line control for displaying information of multilingual environment.
@@ -235,7 +238,8 @@ Normally nil in most modes, since there is no process to display.")
                                            "Not r")))))
         'local-map (purecopy (make-mode-line-mouse-map
                               'mouse-3
-                              #'mode-line-toggle-read-only)))
+                              #'mode-line-toggle-read-only))
+        'mouse-face 'mode-line-highlight)
        (propertize
         "%1+"
         'help-echo  (purecopy (lambda (window object point)
@@ -246,7 +250,8 @@ Normally nil in most modes, since there is no process to display.")
                                             "M"
                                           "Not m")))))
         'local-map (purecopy (make-mode-line-mouse-map
-                              'mouse-3 #'mode-line-toggle-modified))))
+                              'mouse-3 #'mode-line-toggle-modified))
+        'mouse-face 'mode-line-highlight))
   "Mode-line control for displaying whether current buffer is modified.")
 
 (make-variable-buffer-local 'mode-line-modified)
@@ -262,6 +267,7 @@ buffer size, the line number and the column number.")
 
 (defvar mode-line-major-mode-keymap
   (let ((map (make-sparse-keymap)))
+    (define-key map [mode-line down-mouse-1] 'mouse-major-mode-menu)
     (define-key map [mode-line mouse-2] 'describe-mode)
     (define-key map [mode-line down-mouse-3] 'mode-line-mode-menu-1)
     map) "\
@@ -303,13 +309,16 @@ Keymap to display on minor modes.")
     (list
      (propertize "%[(" 'help-echo help-echo)
      `(:propertize ("" mode-name)
-                  help-echo "mouse-2: help for current major mode"
+                  help-echo "mouse-1: major-mode-menu mouse-2: help for current major mode"
+                  mouse-face mode-line-highlight
                   local-map ,mode-line-major-mode-keymap)
      '("" mode-line-process)
      `(:propertize ("" minor-mode-alist)
+                  mouse-face mode-line-highlight
                   help-echo "mouse-2: help for minor modes, mouse-3: minor mode menu"
                   local-map ,mode-line-minor-mode-keymap)
      (propertize "%n" 'help-echo "mouse-2: widen"
+                'mouse-face 'mode-line-highlight
                 'local-map (make-mode-line-mouse-map
                             'mouse-2 #'mode-line-widen))
      (propertize ")%]--" 'help-echo help-echo)))
@@ -403,13 +412,13 @@ Menu of mode operations in the mode line.")
              :button (:toggle . line-number-mode)))
 (define-key mode-line-mode-menu [highlight-changes-mode]
   `(menu-item ,(purecopy "Highlight changes (Chg)") highlight-changes-mode
-             :button (:toggle . highlight-changes-mode)))
-(define-key mode-line-mode-menu [glasses-mode]
-  `(menu-item ,(purecopy "Glasses (o^o)") glasses-mode
-             :button (:toggle . (bound-and-true-p glasses-mode))))
+             :button (:toggle . (bound-and-true-p highlight-changes-mode))))
 (define-key mode-line-mode-menu [hide-ifdef-mode]
   `(menu-item ,(purecopy "Hide ifdef (Ifdef)") hide-ifdef-mode
              :button (:toggle . (bound-and-true-p hide-ifdef-mode))))
+(define-key mode-line-mode-menu [glasses-mode]
+  `(menu-item ,(purecopy "Glasses (o^o)") glasses-mode
+             :button (:toggle . (bound-and-true-p glasses-mode))))
 (define-key mode-line-mode-menu [font-lock-mode]
   `(menu-item ,(purecopy "Font Lock") font-lock-mode
              :button (:toggle . font-lock-mode)))
@@ -419,12 +428,15 @@ Menu of mode operations in the mode line.")
 (define-key mode-line-mode-menu [column-number-mode]
   `(menu-item ,(purecopy "Column number") column-number-mode
              :button (:toggle . column-number-mode)))
-(define-key mode-line-mode-menu [auto-fill-mode]
-  `(menu-item ,(purecopy "Auto Fill (Fill)") auto-fill-mode
-             :button (:toggle . auto-fill-function)))
+(define-key mode-line-mode-menu [auto-revert-tail-mode]
+  `(menu-item ,(purecopy "Auto revert tail (Tail)") auto-revert-tail-mode
+             :button (:toggle . (bound-and-true-p auto-revert-tail-mode))))
 (define-key mode-line-mode-menu [auto-revert-mode]
   `(menu-item ,(purecopy "Auto revert (ARev)") auto-revert-mode
-             :button (:toggle . auto-revert-mode)))
+             :button (:toggle . (bound-and-true-p auto-revert-mode))))
+(define-key mode-line-mode-menu [auto-fill-mode]
+  `(menu-item ,(purecopy "Auto fill (Fill)") auto-fill-mode
+             :button (:toggle . auto-fill-function)))
 (define-key mode-line-mode-menu [abbrev-mode]
   `(menu-item ,(purecopy "Abbrev (Abbrev)") abbrev-mode
              :button (:toggle . abbrev-mode)))
@@ -445,7 +457,6 @@ Menu of mode operations in the mode line.")
 (let ((map (make-sparse-keymap)))
   ;; Bind down- events so that the global keymap won't ``shine
   ;; through''.
-  (define-key map [mode-line down-mouse-1] 'ignore)
   (define-key map [mode-line mouse-1] 'mode-line-unbury-buffer)
   (define-key map [header-line down-mouse-1] 'ignore)
   (define-key map [header-line mouse-1] 'mode-line-unbury-buffer)
@@ -463,6 +474,7 @@ text properties for face, help-echo, and local-map to it."
                    'face 'Buffer-menu-buffer-face
                    'help-echo
                    (purecopy "mouse-1: previous buffer, mouse-3: next buffer")
+                   'mouse-face 'mode-line-highlight
                    'local-map mode-line-buffer-identification-keymap)))
 
 (setq-default mode-line-buffer-identification
@@ -498,7 +510,7 @@ is okay.  See `mode-line-format'.")
                ".a" ".ln" ".blg" ".bbl" ".dll" ".drv" ".vxd" ".386"))
             ((eq system-type 'vax-vms)
              '(".obj" ".exe" ".bin" ".lbin" ".sbin"
-               ".brn" ".rnt" ".lni" ".lis"
+               ".brn" ".rnt" ".lni"
                ".olb" ".tlb" ".mlb" ".hlb"))
             (t
              '(".o" "~" ".bin" ".lbin" ".so"
@@ -514,7 +526,7 @@ is okay.  See `mode-line-format'.")
         ;; CMUCL
         ".x86f" ".sparcf"
          ;; Other CL implementations (Allegro, LispWorks, OpenMCL)
-         ".fasl" ".ufsl" ".fsl" ".dxl" ".pfsl"
+         ".fasl" ".ufsl" ".fsl" ".dxl" ".pfsl" ".dfsl"
         ;; Libtool
         ".lo" ".la"
         ;; Gettext
@@ -623,6 +635,10 @@ language you are using."
 ;; (define-key ctl-x-map "n" 'narrow-to-region)
 ;; (define-key ctl-x-map "w" 'widen)
 
+;; Quitting
+(define-key global-map "\e\e\e" 'keyboard-escape-quit)
+(define-key global-map "\C-g" 'keyboard-quit)
+
 (define-key global-map "\C-j" 'newline-and-indent)
 (define-key global-map "\C-m" 'newline)
 (define-key global-map "\C-o" 'open-line)
@@ -647,9 +663,18 @@ language you are using."
 ;; Many people are used to typing C-/ on X terminals and getting C-_.
 (define-key global-map [?\C-/] 'undo)
 (define-key global-map "\C-_" 'undo)
+;; Richard said that we should not use C-x <uppercase letter> and I have
+;; no idea whereas to bind it.  Any suggestion welcome.  -stef
+;; (define-key ctl-x-map "U" 'undo-only)
+
 (define-key esc-map "!" 'shell-command)
 (define-key esc-map "|" 'shell-command-on-region)
 
+(define-key global-map [?\C-x right] 'next-buffer)
+(define-key global-map [?\C-x C-right] 'next-buffer)
+(define-key global-map [?\C-x left] 'prev-buffer)
+(define-key global-map [?\C-x C-left] 'prev-buffer)
+
 (let ((map minibuffer-local-map))
   (define-key map "\en"   'next-history-element)
   (define-key map [next]  'next-history-element)
@@ -698,6 +723,18 @@ language you are using."
 (define-key global-map "\C-n" 'next-line)
 (define-key global-map "\C-p" 'previous-line)
 (define-key ctl-x-map "\C-n" 'set-goal-column)
+(define-key global-map "\C-a" 'move-beginning-of-line)
+(define-key global-map "\C-e" 'move-end-of-line)
+(define-key esc-map "g" (make-sparse-keymap))
+(define-key esc-map "g\M-g" 'goto-line)
+(define-key esc-map "gg" 'goto-line)
+
+(define-key esc-map "gn" 'next-error)
+(define-key esc-map "g\M-n" 'next-error)
+(define-key ctl-x-map "`" 'next-error)
+
+(define-key esc-map "gp" 'previous-error)
+(define-key esc-map "g\M-p" 'previous-error)
 
 ;;(defun function-key-error ()
 ;;  (interactive)
@@ -714,6 +751,7 @@ language you are using."
 (define-key global-map [home]          'beginning-of-line)
 (define-key global-map [C-home]                'beginning-of-buffer)
 (define-key global-map [M-home]                'beginning-of-buffer-other-window)
+(define-key esc-map    [home]          'beginning-of-buffer-other-window)
 (define-key global-map [left]          'backward-char)
 (define-key global-map [up]            'previous-line)
 (define-key global-map [right]         'forward-char)
@@ -723,14 +761,20 @@ language you are using."
 (define-key global-map [C-up]          'backward-paragraph)
 (define-key global-map [C-down]                'forward-paragraph)
 (define-key global-map [C-prior]       'scroll-right)
+(put 'scroll-left 'disabled t)
 (define-key global-map [C-next]                'scroll-left)
 (define-key global-map [M-next]                'scroll-other-window)
+(define-key esc-map    [next]          'scroll-other-window)
 (define-key global-map [M-prior]       'scroll-other-window-down)
+(define-key esc-map    [prior]         'scroll-other-window-down)
+(define-key esc-map [?\C-\S-v]         'scroll-other-window-down)
 (define-key global-map [end]           'end-of-line)
 (define-key global-map [C-end]         'end-of-buffer)
 (define-key global-map [M-end]         'end-of-buffer-other-window)
+(define-key esc-map    [end]           'end-of-buffer-other-window)
 (define-key global-map [begin]         'beginning-of-buffer)
 (define-key global-map [M-begin]       'beginning-of-buffer-other-window)
+(define-key esc-map    [begin]         'beginning-of-buffer-other-window)
 ;; (define-key global-map [select]     'function-key-error)
 ;; (define-key global-map [print]      'function-key-error)
 (define-key global-map [execute]       'execute-extended-command)
@@ -894,7 +938,9 @@ language you are using."
 (define-key global-map "\C-c" 'mode-specific-command-prefix)
 
 (global-set-key [M-right]  'forward-word)
+(define-key esc-map [right] 'forward-word)
 (global-set-key [M-left]   'backward-word)
+(define-key esc-map [left] 'backward-word)
 ;; ilya@math.ohio-state.edu says these bindings are standard on PC editors.
 (global-set-key [C-right]  'forward-word)
 (global-set-key [C-left]   'backward-word)
@@ -904,12 +950,18 @@ language you are using."
 ;; This is "move to the clipboard", or as close as we come.
 (global-set-key [S-delete] 'kill-region)
 
-(global-set-key [C-M-left]  'backward-sexp)
-(global-set-key [C-M-right] 'forward-sexp)
-(global-set-key [C-M-up]    'backward-up-list)
-(global-set-key [C-M-down]  'down-list)
-(global-set-key [C-M-home]  'beginning-of-defun)
-(global-set-key [C-M-end]   'end-of-defun)
+(global-set-key [C-M-left]    'backward-sexp)
+(define-key esc-map [C-left]  'backward-sexp)
+(global-set-key [C-M-right]   'forward-sexp)
+(define-key esc-map [C-right] 'forward-sexp)
+(global-set-key [C-M-up]      'backward-up-list)
+(define-key esc-map [C-up]    'backward-up-list)
+(global-set-key [C-M-down]    'down-list)
+(define-key esc-map [C-down]  'down-list)
+(global-set-key [C-M-home]    'beginning-of-defun)
+(define-key esc-map [C-home]  'beginning-of-defun)
+(global-set-key [C-M-end]     'end-of-defun)
+(define-key esc-map [C-end]   'end-of-defun)
 
 (define-key esc-map "\C-f" 'forward-sexp)
 (define-key esc-map "\C-b" 'backward-sexp)
@@ -1009,10 +1061,12 @@ language you are using."
 
 (define-key ctl-x-map "z" 'repeat)
 
+(define-key ctl-x-4-map "c" 'clone-indirect-buffer-other-window)
+
 ;; Don't look for autoload cookies in this file.
 ;; Local Variables:
 ;; no-update-autoloads: t
 ;; End:
 
-;;; arch-tag: 23b5c7e6-e47b-49ed-8c6c-ed213c5fffe0
+;; arch-tag: 23b5c7e6-e47b-49ed-8c6c-ed213c5fffe0
 ;;; bindings.el ends here