home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / alt / lucidem / help / 942 < prev    next >
Encoding:
Text File  |  1993-01-25  |  8.8 KB  |  248 lines

  1. x-gateway: rodan.UU.NET from help-lucid-emacs to alt.lucid-emacs.help; Mon, 25 Jan 1993 05:25:41 EST
  2. Date: Mon, 25 Jan 1993 10:23:23 GMT
  3. From: djh@CIS.Prime.COM (David Hughes)
  4. Message-ID: <9301251023.AA25284@CIS.Prime.COM>
  5. Subject: Release of djh-imouse-2.0
  6. Newsgroups: alt.lucid-emacs.help
  7. Path: sparky!uunet!wendy-fate.uu.net!help-lucid-emacs
  8. Sender: help-lucid-emacs-request@lucid.com
  9. Lines: 237
  10.  
  11. Version 2.0 of djh-imouse is now available for users of lemacs 19.3 and 19.4
  12. The README is enclosed below.
  13.  
  14. If you wish a copy, please mail me.
  15.  
  16. A big THANK YOU to my beta testers for all your useful comments and feedback.
  17.  
  18. Note, it is *not* suitable for users of the ready-built versions of lemacs;
  19. you must have the original source files as they require a small amount of
  20. patching. Patch files are included in djh-imouse-2.0.
  21.  
  22. --
  23. Regards, David
  24.  
  25. 8< ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CUT HERE for file: README
  26. Author : David Hughes <djh@cis.prime.com>
  27. Date   : 24th January 1993
  28.  
  29. Package : djh-imouse-2.0
  30.  
  31. Preamble
  32. ========
  33.  
  34. Over a year ago, when I was still using Epoch, I came across a smart mouse
  35. package called imouse by Martin Boyer <gamin@ireq-robot.hydro.qc.ca> which
  36. I was very impressed with. I took this and customised it somewhat to be more
  37. suitable for my needs and to add some of my own features.
  38.  
  39. Then along came Lucid Emacs19 which knocked Epoch flying... However I was not
  40. happy with the mouse handling that comes as standard and decided to go through
  41. the painful process of writing my own system based on what I had for Epoch.
  42.  
  43. Comments, feedback etc are very welcome.
  44.  
  45. Features of djh-imouse
  46. ======================
  47.  
  48.     * Dynamic line numbering in the modeline
  49.  
  50.     * The usual drag or double click select
  51.  
  52.     * Extending currently selected text
  53.  
  54.     * Selection of logical things (words, lines, strings, sexps etc)
  55.       with a single mouse click - this where thing.el is used
  56.  
  57.     * Text cutting with the mouse
  58.  
  59.     * Paste or Move of selected text
  60.  
  61.     * Smart context specific mouse actions
  62.  
  63.     * Window splitting at arbitary positions with a single mouse click
  64.  
  65.     * Resizing a window by dragging the modeline up or down
  66.  
  67.     * Scrolling of arbitary windows by clicking on the modeline
  68.  
  69.     * Yanking the buffer or file-path-name by clicking on the modeline
  70.  
  71.     * Configurable mouse buttons - you choose which behave as "SELECT",
  72.       "PASTE" and "MODIFY"
  73.  
  74.     * Prettify code with simple mouse clicks
  75.  
  76. Installation
  77. ============
  78.  
  79. 1.  There are a number of patch files that need to applied first.
  80.  
  81.     For lemacs19.3 they are in
  82.     djh-imouse-2.0/patch_files_19.3/{src.lisp}
  83.  
  84.     For lemacs19.4 they are in
  85.     djh-imouse-2.0/patch_files_19.4/{src.lisp}
  86.  
  87.     For example you need to type :
  88.  
  89.     patch lemacs-19.4/src/data.c djh-imouse-2.0/patch_files_19.4/src/patch-data.c
  90.  
  91. 2.  Copy the lisp directory djh-imouse-2.0/djh-imouse into the standard area
  92.  
  93.     cp -r djh-imouse-2.0/djh-imouse emacs/lisp/djh-imouse
  94.  
  95.     Note: lisp files in djh-imouse-2.0/djh-imouse are already byte-compiled. If
  96.           you need to recompile anything, then use the following byte-compiler
  97.           settings:
  98.  
  99. (setq byte-optimize t
  100.       byte-optimize-log nil
  101.       byte-compile-verbose nil
  102.       byte-compile-delete-errors t
  103.       byte-compile-error-on-warn nil
  104.       byte-compile-emacs18-compatibility t
  105.       byte-compile-warnings (list 'callargs)
  106.       byte-compile-generate-emacs19-bytecodes nil)
  107.  
  108. 3.  Rebuild lemacs19
  109.  
  110. 4.  Add the following lines to your .emacs file :
  111.  
  112. ;;;;;;;;;;;;;;;;;; Start for djh-imouse stuff ;;;;;;;;;;;;;;;;;;;;;;;;;
  113.  
  114. (defconst have-x-windows (eq window-system 'x))
  115. (defconst running-epoch (and have-x-windows
  116.                            (boundp 'epoch::version)))
  117. (defconst running-emacs19 (and have-x-windows
  118.                              (not running-epoch)
  119.                              (fboundp 'compiled-function-p)))
  120. (defconst running-dumb-emacs (not (or running-epoch running-emacs19)))
  121.  
  122. (cond (running-emacs19
  123.        (require 'djh-imouse)
  124.  
  125.        ;; By default djh-imouse turns OFF zmacs regions
  126.        ;; If you want zmacs then uncomment the following line
  127.        ;;(setq zmacs-region t)
  128.  
  129.        ;; Some suggested djh-imouse key bindings 
  130.        (define-key global-map "\C-hp"  'mouse-summary)
  131.  
  132.        ;; these are for Sun keyboard; modify as necessary
  133.        (define-key global-map 'f19 'kill-ring-save)
  134.        (define-key global-map 'f18 'insert-selection)
  135.        (define-key global-map 'SunF36 'clear-X-selection)))
  136.  
  137.  
  138. ;; djh-imouse supports automatic line-numbering in the modeline
  139. (defconst mode-line-line-numbering-p (not running-dumb-emacs))
  140. (make-variable-buffer-local 'mode-line-line-numbering-p)
  141.  
  142. (defconst mode-line-buffer-info
  143.   (if running-dumb-emacs
  144.       '(buffer-file-name "%f " "%b  [%p%]]")
  145.     '(buffer-file-name "%f  %l/%t" "%b  [%p%]]")))
  146. (make-variable-buffer-local 'mode-line-buffer-info)
  147.  
  148. ;; Refresh the mode line to set up automatic line numbering
  149. (refresh-mode-line t)
  150.  
  151. ;; Byte Compiler Flags
  152. (setq byte-optimize t
  153.       byte-optimize-log nil
  154.       byte-compile-verbose nil
  155.       byte-compile-delete-errors t
  156.       byte-compile-error-on-warn nil
  157.       byte-compile-emacs18-compatibility t
  158.       byte-compile-warnings (list 'callargs)
  159.       byte-compile-generate-emacs19-bytecodes nil)
  160.  
  161. ;;;;;;;;;;;;;;;;;; End for djh-imouse stuff ;;;;;;;;;;;;;;;;;;;;;;;;;;;
  162.  
  163. Sample stuff for .Xdefaults
  164. ===========================
  165.  
  166. !
  167. ! Emacs19
  168. !
  169. Emacs*menubar.background:                    LightSeaGreen
  170. Emacs*menubar.foreground:                    black
  171. Emacs*modeline.attributeFont:                lucidasanstypewriter-bold-12
  172. Emacs*modeline.attributeForeground:          black
  173. Emacs*modeline.attributeBackground:          LightSeaGreen
  174. Emacs*primary-selection.attributeBackground: MediumSeaGreen
  175. Emacs*primary-selection.attributeForeground: black
  176. Emacs*primary-selection.attributeFont:       lucidasanstypewriter-bold-12
  177. Emacs*bold.attributeFont:                    lucidasanstypewriter-bold-12
  178. Emacs*isearch.attributeBackground:           gold
  179. Emacs*isearch.attributeForeground:           black
  180. Emacs*bold-italic.attributeFont:             courBO-12
  181. #ifdef COLOR
  182. Emacs*cursorColor:                           black
  183. Emacs*default.attributeBackground:           DarkSeaGreen
  184. Emacs*default.attributeForeground:           black
  185. Emacs*highlight.attributeForeground:         black
  186. Emacs*highlight.attributeBackground:         gold
  187. #else
  188. Emacs*cursorColor:                           white
  189. Emacs*default.attributeBackground:           black
  190. Emacs*default.attributeForeground:           white
  191. #endif
  192. Emacs*default.attributeFont:                 lucidasanstypewriter-12
  193. Emacs*italic.attributeFont:                  courO-12
  194. Emacs*iconic:                                False
  195. Emacs*interline:                             5
  196. Emacs*menubar*font:   -adobe-times-bold-r-normal--14-140-75-75-p-77-iso8859-1
  197.  
  198.  
  199. Usage
  200. =====
  201.  
  202. Note - unlike the standard lemacs system, I prefer mouse selections to
  203.        remain selected even when moving the cursor using the mouse. This
  204.        allows you to extend the selection later and also gives you total
  205.        control over when the selection dies. For this reason, I recommend
  206.        hot-wiring a function key to 'clear-X-selection, a function in
  207.        djh-imouse.el. Above, I bind F11 (SunF36) to this as an example.
  208.  
  209. A reasonably intelligent user should be able to work out how to use my
  210. package by using the on-screen help. The package adds "Help on Mouse"
  211. to the Help menu on the menubar. If you use the above suggested key
  212. bindings you will be able to get the same help using C-h p.
  213.  
  214. Your comments on the wording of this mouse help summary are invited.
  215.  
  216. Briefly [using the default mouse button settings - these ARE configurable] :
  217.  
  218. Mouse Buttons
  219. Left   = SELECT
  220. Middle = PASTE
  221. Right  = MODIFY
  222.  
  223. Modifiers
  224. Control = THING
  225. Shift   = WINDOW
  226. Meta    = DELETE  (By Meta I mean the diamond key on a sparc keyboard)
  227.  
  228.                   SELECT (Left)          PASTE (Middle)         MODIFY (Right)
  229.  
  230. Normal           Set point or drag      Paste selection        Extend drag
  231.  
  232. THING  (Ctrl)    Select thing           Copy thing at point    Select big thing
  233. WINDOW (Shft)    Smart context action   Return to last point   Drag scroll
  234. DELETE (Meta)    Delete character       Move selection         Kill region
  235.  
  236. DELETE+THING     Kill thing             Move thing at point    Kill big thing
  237. WINDOW+DELETE    Prettify selection     Split vertically       Prettify func
  238. WINDOW+THING     Line to top            Line to center         Line to bottom
  239.  
  240. MODELINE         Scroll window up       Recenter window        Scroll window dn
  241. MODELINE+THING   Cut function name      Paste function name    Move modeline
  242. MODELINE+WINDOW  Cut buffer pathname    Paste buffer pathname  Move modeline
  243. MODELINE+DELETE  Toggle line numbering  Split horizontally     Toggle abbrev
  244. MODE+DEL+THING   Delete window
  245. MODE+DEL+WINDOW  Delete other windows
  246.  
  247. C+S+Meta         This summary           This summary           This summary
  248.