;;; keydefs.el --- Define standard keybindings.
;; Copyright (C) 1992-4, 1997 Free Software Foundation, Inc.
+;; Copyright (C) 2000 Ben Wing.
;; Maintainer: XEmacs Development Team
;; Keywords: internal, dumped
(define-key global-map "\C-e" 'end-of-line)
(define-key global-map "\C-f" 'forward-char-command)
(define-key global-map "\C-d" 'delete-char)
-(define-key global-map 'delete 'backward-or-forward-delete-char)
-(define-key global-map '(meta delete) 'backward-or-forward-kill-word)
-(define-key global-map [(control x) (delete)] 'backward-or-forward-kill-sentence)
;; FSFmacs files.el
(define-key global-map (vector help-char) 'help-command)
(define-key global-map 'help 'help-command)
(define-key global-map 'f1 'help-command)
+;; This is a failsafe mechanism, esp. on TTY's, in case the terminal is
+;; somewhat broken and f1 keys can't work, and backspace is redefined to
+;; do backspace.
+(define-key global-map '(meta ??) 'help-command)
;; FSFmacs indent.el
(define-key global-map '(control meta -) 'negative-argument)
(define-key global-map "\C-k" 'kill-line)
+;will change like this in 21.5.
+;(define-key global-map "\M-k" 'kill-entire-line)
(define-key global-map "\C-w" 'kill-region)
(define-key global-map "\M-w" 'kill-ring-save)
(define-key global-map "\M-\C-w" 'append-next-kill)
(define-key global-map "\M-\C-t" 'transpose-sexps)
(define-key global-map "\C-x\C-t" 'transpose-lines)
+;; XEmacs: much more reasonable and useful key definitions.
+(define-key global-map '(control T) 'transpose-line-down)
+(define-key global-map '(meta T) 'transpose-line-up)
+
(define-key global-map "\M-;" 'indent-for-comment)
(define-key global-map "\M-j" 'indent-new-comment-line)
(define-key global-map "\M-\C-j" 'indent-new-comment-line)
(define-key global-map "\M-\)" 'move-past-close-and-reindent)
(define-key global-map "\M-\t" 'lisp-complete-symbol)
-(define-key global-map '(control meta backspace) 'backward-kill-sexp)
-(define-key global-map '(control meta delete) 'backward-or-forward-kill-sexp)
-
\f
(define-key global-map "\C-x/" 'point-to-register)
(define-key global-map "\C-xj" 'jump-to-register)
(define-key global-map "\C-xr+" 'increment-register)
(define-key global-map "\C-xrc" 'clear-rectangle)
(define-key global-map "\C-xrk" 'kill-rectangle)
+(define-key global-map "\C-xrd" 'delete-rectangle)
(define-key global-map "\C-xry" 'yank-rectangle)
(define-key global-map "\C-xro" 'open-rectangle)
(define-key global-map "\C-xrt" 'string-rectangle)
+(define-key global-map "\C-xrp" 'replace-rectangle)
(define-key global-map "\C-xrw" 'window-configuration-to-register)
;(define-key global-map "\C-xrf" 'frame-configuration-to-register)
(define-key global-map "\M-a" 'backward-sentence)
(define-key global-map "\M-e" 'forward-sentence)
(define-key global-map "\M-k" 'kill-sentence)
+;will change like this in 21.5.
+;(define-key global-map "\M-K" 'kill-sentence)
;;(define-key global-map "\C-x\177" 'backward-kill-sentence)
(define-key global-map "\C-x[" 'backward-page)
;; Default binding of "Control-h" is help.
(define-key global-map 'backspace 'delete-backward-char)
(define-key global-map '(meta backspace) 'backward-kill-word)
+(define-key global-map [(control x) backspace] 'backward-kill-sentence)
(define-key global-map "\M-\C-z" 'activate-region)
;; movement by units
(define-key global-map 'left 'backward-char-command)
-(define-key global-map 'up 'previous-line)
(define-key global-map 'right 'forward-char-command)
+(define-key global-map 'up 'previous-line)
(define-key global-map 'down 'next-line)
-
-;; movement by pages
-(define-key global-map 'prior 'scroll-down-command)
-(define-key global-map 'next 'scroll-up-command)
-
-;; movement to the limits
-(define-key global-map 'home 'beginning-of-line)
-(define-key global-map 'end 'end-of-line)
-
-;;; Miscellaneous key bindings
-(define-key global-map 'again 'repeat-complex-command)
-(define-key global-map 'insert 'overwrite-mode)
-
-;;; These aren't bound to kbd macros like "\C-b" so that they have the
-;; expected behavior even in, for example, vi-mode.
-
-;; We use here symbolic names, assuming that the corresponding keys will
-;; generate these keysyms. This is not true on Suns, but x-win-sun.el
-;; fixes that. If it turns out that the semantics of these keys should
-;; differ from server to server, this should be moved into server-specific
-;; files, but these appear to be the standard Motif and PC bindings.
-
-;; potential R6isms
(define-key global-map 'kp-left 'backward-char-command)
-(define-key global-map 'kp-up 'previous-line)
(define-key global-map 'kp-right 'forward-char-command)
+(define-key global-map 'kp-up 'previous-line)
(define-key global-map 'kp-down 'next-line)
-
-;; movement by larger blocks
-(define-key global-map '(control left) 'backward-word)
-(define-key global-map '(control up) #'(lambda ()
- (interactive "_")
- (forward-line -6)))
-(define-key global-map '(control right) 'forward-word)
-(define-key global-map '(control down) #'(lambda ()
- (interactive "_")
- (forward-line 6)))
-
-;; context-sensitive movement
-(define-key global-map '(meta left) 'backward-sexp)
-(define-key global-map '(meta right) 'forward-sexp)
-(define-key global-map '(meta up) 'backward-paragraph)
-(define-key global-map '(meta down) 'forward-paragraph)
-
;; movement by pages
+(define-key global-map 'prior 'scroll-down-command)
+(define-key global-map 'next 'scroll-up-command)
(define-key global-map '(control prior) 'scroll-right)
(define-key global-map '(control next) 'scroll-left)
-;; potential R6isms
(define-key global-map 'kp-prior 'scroll-down-command)
(define-key global-map 'kp-next 'scroll-up-command)
(define-key global-map '(control kp-prior) 'scroll-right)
(define-key global-map '(control kp-next) 'scroll-left)
-
;; movement to the limits
+(define-key global-map 'home 'beginning-of-line)
+(define-key global-map 'end 'end-of-line)
(define-key global-map '(control home) 'beginning-of-buffer)
(define-key global-map '(control end) 'end-of-buffer)
-(define-key global-map 'begin 'beginning-of-line)
-(define-key global-map '(control begin) 'beginning-of-buffer)
-;; potential R6isms
(define-key global-map 'kp-home 'beginning-of-line)
-(define-key global-map '(control kp-home) 'beginning-of-buffer)
(define-key global-map 'kp-end 'end-of-line)
+(define-key global-map '(control kp-home) 'beginning-of-buffer)
(define-key global-map '(control kp-end) 'end-of-buffer)
+;; on which systems do these exist?
+(define-key global-map 'begin 'beginning-of-line)
+(define-key global-map '(control begin) 'beginning-of-buffer)
+
+;; movement by larger blocks
+(define-key global-map '(control left) 'backward-word)
+(define-key global-map '(control right) 'forward-word)
+(define-key global-map '(control up) 'backward-block-of-lines)
+(define-key global-map '(control down) 'forward-block-of-lines)
+(define-key global-map '(control kp-left) 'backward-word)
+(define-key global-map '(control kp-right) 'forward-word)
+(define-key global-map '(control kp-up) 'backward-block-of-lines)
+(define-key global-map '(control kp-down) 'forward-block-of-lines)
+
+;; context-sensitive movement
+(define-key global-map '(meta left) 'backward-sexp)
+(define-key global-map '(meta right) 'forward-sexp)
+(define-key global-map '(meta up) 'backward-paragraph)
+(define-key global-map '(meta down) 'forward-paragraph)
+(define-key global-map '(meta control left) 'backward-sentence)
+(define-key global-map '(meta control right) 'forward-sentence)
+(define-key global-map '(meta control up) 'scroll-down-one)
+(define-key global-map '(meta control down) 'scroll-up-one)
+(define-key global-map '(meta control home) 'beginning-of-defun)
+(define-key global-map '(meta control end) 'end-of-defun)
+(define-key global-map '(meta control prior) 'backward-page)
+(define-key global-map '(meta control next) 'forward-page)
+(define-key global-map '(meta kp-left) 'backward-sexp)
+(define-key global-map '(meta kp-right) 'forward-sexp)
+(define-key global-map '(meta kp-up) 'backward-paragraph)
+(define-key global-map '(meta kp-down) 'forward-paragraph)
+(define-key global-map '(meta control kp-left) 'backward-sentence)
+(define-key global-map '(meta control kp-right) 'forward-sentence)
+(define-key global-map '(meta control kp-up) 'scroll-down-one)
+(define-key global-map '(meta control kp-down) 'scroll-up-one)
+(define-key global-map '(meta control kp-home) 'beginning-of-defun)
+(define-key global-map '(meta control kp-end) 'end-of-defun)
+(define-key global-map '(meta control kp-prior) 'backward-page)
+(define-key global-map '(meta control kp-next) 'forward-page)
+
;; movement between windows
(define-key global-map '(control tab) 'other-window)
(define-key global-map '(control shift tab) 'backward-other-window)
(define-key global-map '(meta prior) 'scroll-other-window-down)
(define-key global-map '(meta home) 'beginning-of-buffer-other-window)
(define-key global-map '(meta end) 'end-of-buffer-other-window)
-;; potential R6isms
(define-key global-map '(meta kp-next) 'scroll-other-window)
(define-key global-map '(meta kp-prior) 'scroll-other-window-down)
(define-key global-map '(meta kp-home) 'beginning-of-buffer-other-window)
(define-key global-map '(meta kp-end) 'end-of-buffer-other-window)
-;; potential R6isms
-(define-key global-map 'redo 'repeat-complex-command)
+;; the infamous delete key
+(define-key global-map 'delete 'backward-or-forward-delete-char)
+(define-key global-map '(meta delete) 'backward-or-forward-kill-word)
+(define-key global-map [(control x) (delete)]
+ 'backward-or-forward-kill-sentence)
+(define-key global-map 'kp-delete 'backward-or-forward-delete-char)
+(define-key global-map '(meta kp-delete) 'backward-or-forward-kill-word)
+(define-key global-map [(control x) (kp-delete)]
+ 'backward-or-forward-kill-sentence)
+
+;; don't try this one at home, kids.
+(define-key global-map '(control meta delete) 'backward-or-forward-kill-sexp)
+(define-key global-map '(control meta kp-delete) 'backward-or-forward-kill-sexp)
+;; or this one, either, on Linux.
+(define-key global-map '(control meta backspace) 'backward-kill-sexp)
+
+
+;;; Miscellaneous key bindings
+(define-key global-map 'insert 'overwrite-mode)
(define-key global-map 'kp-insert 'overwrite-mode)
-(define-key global-map 'kp-delete 'backward-delete-char-untabify)
+(define-key global-map 'again 'repeat-complex-command)
+(define-key global-map 'redo 'repeat-complex-command)
(define-key global-map 'kp-enter [return]) ; do whatever RET does now
(define-key global-map 'kp-tab [tab])
(define-key global-map 'kp-8 'self-insert-command)
(define-key global-map 'kp-9 'self-insert-command)
-(define-key global-map 'select 'function-key-error)
-(define-key global-map 'print 'function-key-error)
+;(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 'clearline 'function-key-error)
+;(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 'insertchar 'function-key-error)
(define-key global-map 'deletechar 'delete-char)
;;; keydefs.el ends here