;;; 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, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
;; 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., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Commentary:
(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)))
"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
" 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.
"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)
"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)
(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) "\
(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)))
: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)))
+ :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))))
:button (:toggle . column-number-mode)))
(define-key mode-line-mode-menu [auto-revert-tail-mode]
`(menu-item ,(purecopy "Auto revert tail (Tail)") auto-revert-tail-mode
- :button (:toggle . 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)))
(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)
FMT is a format specifier such as \"%12b\". This function adds
text properties for face, help-echo, and local-map to it."
(list (propertize fmt
- 'face 'Buffer-menu-buffer-face
+ 'face 'Buffer-menu-buffer
'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
".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"
;; (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)
;; 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)
(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)
(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)
(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)
(define-key global-map [insert] 'overwrite-mode)
(define-key global-map [C-insert] 'kill-ring-save)
(define-key global-map [S-insert] 'yank)
+;; `insertchar' is what term.c produces. Should we change term.c
+;; to produce `insert' instead?
+(define-key global-map [insertchar] 'overwrite-mode)
+(define-key global-map [C-insertchar] 'kill-ring-save)
+(define-key global-map [S-insertchar] 'yank)
(define-key global-map [undo] 'undo)
(define-key global-map [redo] 'repeat-complex-command)
(define-key global-map [again] 'repeat-complex-command) ; Sun keyboard
;; (define-key global-map [clearline] 'function-key-error)
(define-key global-map [insertline] 'open-line)
(define-key global-map [deleteline] 'kill-line)
-;; (define-key global-map [insertchar] 'function-key-error)
(define-key global-map [deletechar] 'delete-char)
;; (define-key global-map [backtab] 'function-key-error)
;; (define-key global-map [f1] 'function-key-error)
(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)
;; 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)
(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