Copyright (C) 2000-2012 |
GNU Info (emacs-lisp-intro.info)Simple ExtensionA Simple Extension: `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 *Note Rebinding Keys in Your Init File: (emacs)Init Rebinding. 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(1): (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.) ---------- Footnotes ---------- (1) When I start instances of Emacs that do not load my `.emacs' file or any site file, I also turn off blinking: emacs -q --no-site-file -eval '(blink-cursor-mode nil)' automatically generated by info2www version 1.2.2.9 |