| www.delorie.com/gnu/docs/emacs-lisp-intro/emacs-lisp-intro_245.html | search |
![]() Buy the book! | |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
line-to-top-of-window Here is a simple extension to Emacs that moves the line point is on to the top of the window. I use this all the time, to make text easier to read.
You can put the following code into a separate file and then load it from your `.emacs' file, or you can include it within your `.emacs' file.
Here is the definition:
;;; Line to top of window; ;;; replace three keystroke sequence C-u 0 C-l (defun line-to-top-of-window () "Move the line point is on to top of window." (interactive) (recenter 0)) |
Now for the keybinding.
Nowadays, function keys as well as mouse button events and non-ASCII characters are written within square brackets, without quotation marks. (In Emacs version 18 and before, you had to write different function key bindings for each different make of terminal.)
I bind line-to-top-of-window to my F6 function key like
this:
(global-set-key [f6] 'line-to-top-of-window) |
For more information, see section `Rebinding Keys in Your Init File' in The GNU Emacs Manual.
If you run two versions of GNU Emacs, such as versions 20 and 21, and use one `.emacs' file, you can select which code to evaluate with the following conditional:
(cond ((string-equal (number-to-string 20) (substring (emacs-version) 10 12)) ;; evaluate version 20 code ( ... )) ((string-equal (number-to-string 21) (substring (emacs-version) 10 12)) ;; evaluate version 21 code ( ... ))) |
For example, in contrast to version 20, version 21 blinks its cursor by default. I hate such blinking, as well as some other features in version 21, so I placed the following in my `.emacs' file(12):
(if (string-equal "21" (substring (emacs-version) 10 12))
(progn
(blink-cursor-mode 0)
;; Insert newline when you press `C-n' (next-line)
;; at the end of the buffer
(setq next-line-add-newlines t)
;; Turn on image viewing
(auto-image-file-mode t)
;; Turn on menu bar (this bar has text)
;; (Use numeric argument to turn on)
(menu-bar-mode 1)
;; Turn off tool bar (this bar has icons)
;; (Use numeric argument to turn on)
(tool-bar-mode nil)
;; Turn off tooltip mode for tool bar
;; (This mode causes icon explanations to pop up)
;; (Use numeric argument to turn on)
(tooltip-mode nil)
;; If tooltips turned on, make tips appear promptly
(setq tooltip-delay 0.1) ; default is one second
))
|
(You will note that instead of typing (number-to-string 21), I
decided to save typing and wrote `21' as a string, "21", rather
than convert it from an integer to a string. In this instance, this
expression is better than the longer, but more general
(number-to-string 21). However, if you do not know ahead of
time what type of information will be returned, then the
number-to-string function will be needed.)
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| webmaster donations bookstore | delorie software privacy |
| Copyright © 2003 by The Free Software Foundation | Updated Jun 2003 |