X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/08861c5cb87e91e83e5b0bf53cb53c1377434c8f..36fc09321bce7286ce378c45382a0a4773d69a9d:/lisp/bindings.el diff --git a/lisp/bindings.el b/lisp/bindings.el index af94fcd9d8..88073a85da 100644 --- a/lisp/bindings.el +++ b/lisp/bindings.el @@ -1,17 +1,17 @@ ;;; bindings.el --- define standard key bindings and some variables ;; Copyright (C) 1985, 1986, 1987, 1992, 1993, 1994, 1995, 1996, 1999, -;; 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +;; 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal ;; This file is part of GNU Emacs. -;; GNU Emacs is free software; you can redistribute it and/or modify +;; GNU Emacs 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, or (at your option) -;; any later version. +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -19,9 +19,7 @@ ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to -;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. +;; along with GNU Emacs. If not, see . ;;; Commentary: @@ -148,7 +146,7 @@ corresponding to the mode line clicked." (defun mode-line-eol-desc () (let* ((eol (coding-system-eol-type buffer-file-coding-system)) (mnemonic (coding-system-eol-type-mnemonic buffer-file-coding-system)) - (desc (assq eol mode-line-eol-desc-cache))) + (desc (assoc eol mode-line-eol-desc-cache))) (if (and desc (eq (cadr desc) mnemonic)) (cddr desc) (if desc (setq mode-line-eol-desc-cache nil)) ;Flush the cache if stale. @@ -157,7 +155,7 @@ corresponding to the mode line clicked." mnemonic 'help-echo (format "End-of-line style: %s\nmouse-1 to cycle" (if (eq eol 0) "Unix-style LF" - (if (eq eol 1) "Dos-style CRLF" + (if (eq eol 1) "DOS-style CRLF" (if (eq eol 2) "Mac-style CR" "Undecided")))) 'keymap @@ -172,8 +170,8 @@ corresponding to the mode line clicked." (defvar mode-line-client `("" (:propertize ("" (:eval (if (frame-parameter nil 'client) "@" ""))) - help-echo "Emacsclient frame")) - "Mode-line control for identifying Emacsclient frames.") + help-echo "emacsclient frame")) + "Mode-line control for identifying emacsclient frames.") (defvar mode-line-mule-info `("" @@ -217,8 +215,20 @@ mnemonics of the following coding systems: (make-variable-buffer-local 'mode-line-mule-info) -(defvar mode-line-frame-identification '(window-system " " "-%F ") +;; MSDOS frames have window-system, but want the Fn identification. +(defun mode-line-frame-control () + "Compute mode-line control for frame identification. +Value is used for `mode-line-frame-identification', which see." + (if (or (null window-system) + (eq window-system 'pc)) + "-%F " + " ")) + +;; We need to defer the call to mode-line-frame-control to the time +;; the mode line is actually displayed. +(defvar mode-line-frame-identification '(:eval (mode-line-frame-control)) "Mode-line control to describe the current frame.") +(put 'mode-line-frame-identification 'risky-local-variable t) (defvar mode-line-process nil "\ Mode-line control for displaying info on process status. @@ -585,15 +595,13 @@ is okay. See `mode-line-format'.") (cond ((memq system-type '(ms-dos windows-nt)) '(".o" "~" ".bin" ".bak" ".obj" ".map" ".ico" ".pif" ".lnk" ".a" ".ln" ".blg" ".bbl" ".dll" ".drv" ".vxd" ".386")) - ((eq system-type 'vax-vms) - '(".obj" ".exe" ".bin" ".lbin" ".sbin" - ".brn" ".rnt" ".lni" - ".olb" ".tlb" ".mlb" ".hlb")) (t '(".o" "~" ".bin" ".lbin" ".so" ".a" ".ln" ".blg" ".bbl"))) '(".elc" ".lof" ".glo" ".idx" ".lot" + ;; VCS metadata directories + ".svn/" ".hg/" ".git/" ".bzr/" "CVS/" "_darcs/" "_MTN/" ;; TeX-related ".fmt" ".tfm" ;; Java compiled @@ -604,6 +612,7 @@ is okay. See `mode-line-format'.") ".x86f" ".sparcf" ;; Other CL implementations (Allegro, LispWorks, OpenMCL) ".fasl" ".ufsl" ".fsl" ".dxl" ".pfsl" ".dfsl" + ".p64fsl" ".d64fsl" ".dx64fsl" ;; Libtool ".lo" ".la" ;; Gettext @@ -701,10 +710,13 @@ language you are using." ;These commands are defined in editfns.c ;but they are not assigned to keys there. (put 'narrow-to-region 'disabled t) -(define-key ctl-x-map "nn" 'narrow-to-region) -(define-key ctl-x-map "nw" 'widen) -;; (define-key ctl-x-map "n" 'narrow-to-region) -;; (define-key ctl-x-map "w" 'widen) + +(defvar narrow-map (make-sparse-keymap) + "Keymap for narrowing commands.") +(define-key ctl-x-map "n" narrow-map) + +(define-key narrow-map "n" 'narrow-to-region) +(define-key narrow-map "w" 'widen) ;; Quitting (define-key global-map "\e\e\e" 'keyboard-escape-quit) @@ -745,10 +757,10 @@ language you are using." (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] 'previous-buffer) -(define-key global-map [?\C-x C-left] 'previous-buffer) +(define-key ctl-x-map [right] 'next-buffer) +(define-key ctl-x-map [C-right] 'next-buffer) +(define-key ctl-x-map [left] 'previous-buffer) +(define-key ctl-x-map [C-left] 'previous-buffer) (let ((map minibuffer-local-map)) (define-key map "\en" 'next-history-element) @@ -805,16 +817,31 @@ language you are using." (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) +(defvar goto-map (make-sparse-keymap) + "Keymap for navigation commands.") +(define-key esc-map "g" goto-map) + +(define-key goto-map "g" 'goto-line) +(define-key goto-map "\M-g" 'goto-line) +(define-key goto-map "n" 'next-error) +(define-key goto-map "\M-n" 'next-error) +(define-key goto-map "p" 'previous-error) +(define-key goto-map "\M-p" 'previous-error) + +(defvar search-map (make-sparse-keymap) + "Keymap for search related commands.") +(define-key esc-map "s" search-map) + +(define-key search-map "o" 'occur) +(define-key search-map "hr" 'highlight-regexp) +(define-key search-map "hp" 'highlight-phrase) +(define-key search-map "hl" 'highlight-lines-matching-regexp) +(define-key search-map "hu" 'unhighlight-regexp) +(define-key search-map "hf" 'hi-lock-find-patterns) +(define-key search-map "hw" 'hi-lock-write-interactive-patterns) ;;(defun function-key-error () ;; (interactive) @@ -1029,8 +1056,8 @@ language you are using." (global-set-key [C-right] 'forward-word) (global-set-key [C-left] 'backward-word) ;; This is not quite compatible, but at least is analogous -(global-set-key [C-delete] 'backward-kill-word) -(global-set-key [C-backspace] 'kill-word) +(global-set-key [C-delete] 'kill-word) +(global-set-key [C-backspace] 'backward-kill-word) ;; This is "move to the clipboard", or as close as we come. (global-set-key [S-delete] 'kill-region) @@ -1075,25 +1102,10 @@ language you are using." (define-key ctl-x-4-map "m" 'compose-mail-other-window) (define-key ctl-x-5-map "m" 'compose-mail-other-frame) -(define-key ctl-x-map "r\C-@" 'point-to-register) -(define-key ctl-x-map [?r ?\C-\ ] 'point-to-register) -(define-key ctl-x-map "r " 'point-to-register) -(define-key ctl-x-map "rj" 'jump-to-register) -(define-key ctl-x-map "rs" 'copy-to-register) -(define-key ctl-x-map "rx" 'copy-to-register) -(define-key ctl-x-map "ri" 'insert-register) -(define-key ctl-x-map "rg" 'insert-register) -(define-key ctl-x-map "rr" 'copy-rectangle-to-register) -(define-key ctl-x-map "rn" 'number-to-register) -(define-key ctl-x-map "r+" 'increment-register) -(define-key ctl-x-map "rc" 'clear-rectangle) -(define-key ctl-x-map "rk" 'kill-rectangle) -(define-key ctl-x-map "rd" 'delete-rectangle) -(define-key ctl-x-map "ry" 'yank-rectangle) -(define-key ctl-x-map "ro" 'open-rectangle) -(define-key ctl-x-map "rt" 'string-rectangle) -(define-key ctl-x-map "rw" 'window-configuration-to-register) -(define-key ctl-x-map "rf" 'frame-configuration-to-register) + +(defvar ctl-x-r-map (make-sparse-keymap) + "Keymap for subcommands of C-x r.") +(define-key ctl-x-map "r" ctl-x-r-map) (define-key esc-map "q" 'fill-paragraph) (define-key ctl-x-map "." 'set-fill-prefix) @@ -1113,16 +1125,20 @@ language you are using." (define-key ctl-x-map "np" 'narrow-to-page) ;; (define-key ctl-x-map "p" 'narrow-to-page) -(define-key ctl-x-map "al" 'add-mode-abbrev) -(define-key ctl-x-map "a\C-a" 'add-mode-abbrev) -(define-key ctl-x-map "ag" 'add-global-abbrev) -(define-key ctl-x-map "a+" 'add-mode-abbrev) -(define-key ctl-x-map "aig" 'inverse-add-global-abbrev) -(define-key ctl-x-map "ail" 'inverse-add-mode-abbrev) -;; (define-key ctl-x-map "a\C-h" 'inverse-add-global-abbrev) -(define-key ctl-x-map "a-" 'inverse-add-global-abbrev) -(define-key ctl-x-map "ae" 'expand-abbrev) -(define-key ctl-x-map "a'" 'expand-abbrev) +(defvar abbrev-map (make-sparse-keymap) + "Keymap for abbrev commands.") +(define-key ctl-x-map "a" abbrev-map) + +(define-key abbrev-map "l" 'add-mode-abbrev) +(define-key abbrev-map "\C-a" 'add-mode-abbrev) +(define-key abbrev-map "g" 'add-global-abbrev) +(define-key abbrev-map "+" 'add-mode-abbrev) +(define-key abbrev-map "ig" 'inverse-add-global-abbrev) +(define-key abbrev-map "il" 'inverse-add-mode-abbrev) +;; (define-key abbrev-map "\C-h" 'inverse-add-global-abbrev) +(define-key abbrev-map "-" 'inverse-add-global-abbrev) +(define-key abbrev-map "e" 'expand-abbrev) +(define-key abbrev-map "'" 'expand-abbrev) ;; (define-key ctl-x-map "\C-a" 'add-mode-abbrev) ;; (define-key ctl-x-map "\+" 'add-global-abbrev) ;; (define-key ctl-x-map "\C-h" 'inverse-add-mode-abbrev)