;;; 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, 2009, 2010
+;; Copyright (C) 1985-1987, 1992-1996, 1999-2011
;; Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
+;; Package: emacs
;; This file is part of GNU Emacs.
,(propertize
"%z"
'help-echo
- #'(lambda (window object point)
- (with-current-buffer (window-buffer window)
- ;; Don't show this tip if the coding system is nil,
- ;; it reads like a bug, and is not useful anyway.
- (when buffer-file-coding-system
- (format "Buffer coding system %s\nmouse-1: describe coding system"
- (if enable-multibyte-characters
- (concat "(multi-byte): "
- (symbol-name buffer-file-coding-system))
- (concat "(unibyte): "
- (symbol-name buffer-file-coding-system)))))))
+ (lambda (window _object _point)
+ (with-current-buffer (window-buffer window)
+ ;; Don't show this tip if the coding system is nil,
+ ;; it reads like a bug, and is not useful anyway.
+ (when buffer-file-coding-system
+ (format "Buffer coding system %s\nmouse-1: describe coding system"
+ (if enable-multibyte-characters
+ (concat "(multi-byte): "
+ (symbol-name buffer-file-coding-system))
+ (concat "(unibyte): "
+ (symbol-name buffer-file-coding-system)))))))
'mouse-face 'mode-line-highlight
'local-map mode-line-coding-system-map)
(:eval (mode-line-eol-desc)))
(defvar mode-line-modified
(list (propertize
"%1*"
- 'help-echo (purecopy (lambda (window object point)
+ 'help-echo (purecopy (lambda (window _object _point)
(format "Buffer is %s\nmouse-1 toggles"
(save-selected-window
(select-window window)
'mouse-face 'mode-line-highlight)
(propertize
"%1+"
- 'help-echo (purecopy (lambda (window object point)
+ 'help-echo (purecopy (lambda (window _object _point)
(format "Buffer is %sodified\nmouse-1 toggles modified state"
(save-selected-window
(select-window window)
(list (propertize
"%1@"
'mouse-face 'mode-line-highlight
- 'help-echo (purecopy (lambda (window object point)
+ 'help-echo (purecopy (lambda (window _object _point)
(format "%s"
(save-selected-window
(select-window window)
mouse-2: Make current window occupy the whole frame\n\
mouse-3: Remove current window from display")
(recursive-edit-help-echo "Recursive edit, type C-M-c to get out")
- (dashes (propertize "--" 'help-echo help-echo))
+ (spaces (propertize " " 'help-echo help-echo))
(standard-mode-line-format
(list
"%e"
- (propertize "-" 'help-echo help-echo)
+ `(:eval (if (display-graphic-p)
+ ,(propertize " " 'help-echo help-echo)
+ ,(propertize "-" 'help-echo help-echo)))
'mode-line-mule-info
'mode-line-client
'mode-line-modified
'(vc-mode vc-mode)
(propertize " " 'help-echo help-echo)
'mode-line-modes
- `(which-func-mode ("" which-func-format ,dashes))
- `(global-mode-string ("" global-mode-string ,dashes))
- (propertize "-%-" 'help-echo help-echo)))
+ `(which-func-mode ("" which-func-format ,spaces))
+ `(global-mode-string ("" global-mode-string ,spaces))
+ `(:eval (unless (display-graphic-p)
+ ,(propertize "-%-" 'help-echo help-echo)))))
(standard-mode-line-modes
(list
(propertize "%[" 'help-echo recursive-edit-help-echo)
'mouse-2 #'mode-line-widen))
(propertize ")" 'help-echo help-echo)
(propertize "%]" 'help-echo recursive-edit-help-echo)
- (propertize "--" 'help-echo help-echo)))
+ spaces))
(standard-mode-line-position
`((-3 ,(propertize
(make-variable-buffer-local 'indent-tabs-mode)
-;; We have base64 and md5 functions built in now.
+;; We have base64, md5 and sha1 functions built in now.
(provide 'base64)
(provide 'md5)
+(provide 'sha1)
(provide 'overlay '(display syntax-table field))
(provide 'text-properties '(display syntax-table field point-entered))
(define-key esc-map "\t" 'complete-symbol)
+(defun complete-symbol (arg)
+ "Perform completion on the text around point.
+The completion method is determined by `completion-at-point-functions'.
+
+With a prefix argument, this command does completion within
+the collection of symbols listed in the index of the manual for the
+language you are using."
+ (interactive "P")
+ (if arg (info-complete-symbol) (completion-at-point)))
+
;; Reduce total amount of space we must allocate during this function
;; that we will not need to keep permanently.
(garbage-collect)
;but they are not assigned to keys there.
(put 'narrow-to-region 'disabled t)
+;; Moving with arrows in bidi-sensitive direction.
+(defun right-char (&optional n)
+ "Move point N characters to the right (to the left if N is negative).
+On reaching beginning or end of buffer, stop and signal error.
+
+Depending on the bidirectional context, this may move either forward
+or backward in the buffer. This is in contrast with \\[forward-char]
+and \\[backward-char], which see."
+ (interactive "^p")
+ (if (eq (current-bidi-paragraph-direction) 'left-to-right)
+ (forward-char n)
+ (backward-char n)))
+
+(defun left-char ( &optional n)
+ "Move point N characters to the left (to the right if N is negative).
+On reaching beginning or end of buffer, stop and signal error.
+
+Depending on the bidirectional context, this may move either backward
+or forward in the buffer. This is in contrast with \\[backward-char]
+and \\[forward-char], which see."
+ (interactive "^p")
+ (if (eq (current-bidi-paragraph-direction) 'left-to-right)
+ (backward-char n)
+ (forward-char n)))
+
+(defun right-word (&optional n)
+ "Move point N words to the right (to the left if N is negative).
+
+Depending on the bidirectional context, this may move either forward
+or backward in the buffer. This is in contrast with \\[forward-word]
+and \\[backward-word], which see.
+
+Value is normally t.
+If an edge of the buffer or a field boundary is reached, point is left there
+there and the function returns nil. Field boundaries are not noticed
+if `inhibit-field-text-motion' is non-nil."
+ (interactive "^p")
+ (if (eq (current-bidi-paragraph-direction) 'left-to-right)
+ (forward-word n)
+ (backward-word n)))
+
+(defun left-word (&optional n)
+ "Move point N words to the left (to the right if N is negative).
+
+Depending on the bidirectional context, this may move either backward
+or forward in the buffer. This is in contrast with \\[backward-word]
+and \\[forward-word], which see.
+
+Value is normally t.
+If an edge of the buffer or a field boundary is reached, point is left there
+there and the function returns nil. Field boundaries are not noticed
+if `inhibit-field-text-motion' is non-nil."
+ (interactive "^p")
+ (if (eq (current-bidi-paragraph-direction) 'left-to-right)
+ (backward-word n)
+ (forward-word n)))
+
(defvar narrow-map (make-sparse-keymap)
"Keymap for narrowing commands.")
(define-key ctl-x-map "n" narrow-map)
(setq i (1+ i))))
(define-key global-map [?\C-\M--] 'negative-argument)
+(define-key global-map "\177" 'delete-backward-char)
+(define-key global-map "\C-d" 'delete-char)
+
(define-key global-map "\C-k" 'kill-line)
(define-key global-map "\C-w" 'kill-region)
(define-key esc-map "w" 'kill-ring-save)
(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] 'left-arrow-command)
+(define-key global-map [left] 'left-char)
(define-key global-map [up] 'previous-line)
-(define-key global-map [right] 'right-arrow-command)
+(define-key global-map [right] 'right-char)
(define-key global-map [down] 'next-line)
(define-key global-map [prior] 'scroll-down-command)
(define-key global-map [next] 'scroll-up-command)
;; (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 [deletechar] 'delete-char)
+(define-key global-map [deletechar] 'delete-forward-char)
;; (define-key global-map [backtab] 'function-key-error)
;; (define-key global-map [f1] 'function-key-error)
;; (define-key global-map [f2] 'function-key-error)
;; so we can't distinguish those two keys, but usually we consider C-SPC
;; (rather than C-@) as the "canonical" binding.
(define-key function-key-map [?\C-@] [?\C-\s])
+;; Many keyboards don't have a `backtab' key, so by convention the user
+;; can use S-tab instead to access that binding.
+(define-key function-key-map [S-tab] [backtab])
(define-key global-map [mouse-movement] 'ignore)
(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)
+(global-set-key [C-right] 'right-word)
+(global-set-key [C-left] 'left-word)
;; This is not quite compatible, but at least is analogous
(global-set-key [C-delete] 'kill-word)
(global-set-key [C-backspace] 'backward-kill-word)
;; no-update-autoloads: t
;; End:
-;; arch-tag: 23b5c7e6-e47b-49ed-8c6c-ed213c5fffe0
;;; bindings.el ends here