home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / emacs / 4078 < prev    next >
Encoding:
Text File  |  1993-01-27  |  6.8 KB  |  177 lines

  1. Xref: sparky comp.emacs:4078 gnu.emacs.sources:973
  2. Newsgroups: comp.emacs,gnu.emacs.sources
  3. Path: sparky!uunet!uunet.ca!canrem!telly!utzoo!torn!cs.utexas.edu!usc!rpi!gatech!ncar!sunny!southern
  4. From: southern@sunny.NoSubdomain.NoDomain (Lawrence Buja)
  5. Subject: ]-mode   (was Re: hand injuries
  6. Message-ID: <1993Jan27.161335.1683@ncar.ucar.edu>
  7. Sender: news@ncar.ucar.edu (USENET Maintenance)
  8. Reply-To: southern@ncar.ucar.edu
  9. Organization: National Center for Atmospheric Research
  10. References: <9301261718.AA14771@larynx.cs.rochester.edu> <WARSAW.93Jan26160232@anthem.nlm.nih.gov>
  11. Distribution: usa
  12. Date: Wed, 27 Jan 1993 16:13:35 GMT
  13. Lines: 162
  14.  
  15. Barry A. Warsaw writes:
  16. >
  17. >I keep hearing about new key input devices (not keyboards) which are
  18. >supposed to be much better for your hands. Can anybody give more
  19. >information on these things and does anybody use one regularly?  Any
  20. >Sun type-4 replacements available?
  21.  
  22. Though this is not exactly what you are asking about, I thought I'd post
  23. it up anyway.  I inherited the following set-up from a friend who was a
  24. great programmer debilitated by a stroke/heart-attack which greatly
  25. limited his motion.
  26.  
  27. Essentially it make ] act like another ESC key.  Since ]-anything is
  28. not, by default, defined, you can make it anything you like and not
  29. worry about nuking any emacs default key sequences.
  30.  
  31. First I set up the defaults sequences, then I apply the mode specific
  32. definitions.  For example, my macs-lisp-mode-hook looks like:
  33.  
  34.     (setq emacs-lisp-mode-hook
  35.           (function
  36.             (lambda nil
  37.               (load                   "my-modekeys"  nil t)
  38.               (define-emacs-lisp-mode-keys)
  39.               (setq comment-start     ";")
  40.               (setq set-fill-prefix   "; ")
  41.               (setq default-directory "~ccmproc2/emacs/")
  42.              )
  43.            )
  44.     )
  45.  
  46. The first line after the "(lambda nil" line loads it, then the
  47. next line applies the emacs-lisp specific definitions.
  48.  
  49.  
  50. /\      Lawrence Buja           Climate and Global Dynamics Division
  51.   \_][  southern@ncar.ucar.edu  National Center for Atmospheric Research
  52.       \_________________________Boulder,_Colorado___80307-3000__________
  53.  
  54.  
  55. ;  
  56. ;   File:   /home/ccmproc2/emacs/my-modekeys.el  (4607 bytes) 
  57. ;   Date:   Wed Jan 27 08:57:45 1993
  58. ;   Author: Lawrence Buja <ccmproc2@sunny>
  59. ;  
  60. ;   ] key definitions functions to be called by mode hooks
  61. ;   
  62. ;   See ~ccmproc2/emacs/hooks.el for examples on loading the mode-specific definitions
  63. ;  
  64. ;   Default map to be used with all modes.  
  65. ;
  66. ;   Warning: Many of these functions are NOT generic emacs functions.
  67. ;
  68.  (local-set-key "][" 'hide-all-non-matching-lines)
  69.  (local-set-key "]'" 'other-window)
  70.  (local-set-key "] " 'set-mark-command)
  71.  (local-set-key "];" 'goto-line)
  72.  (local-set-key "]!" 'shell-command)
  73.  (local-set-key "]=" 'occur-all)
  74.  (local-set-key "]-" 'line-boundary)
  75.  (local-set-key "]1" 'delete-other-windows)
  76.  (local-set-key "]2" 'split-window-vertically-find-file)
  77.  (local-set-key "]3" 'scroll-other-window)
  78.  (local-set-key "]0" 'change-case)
  79.  (local-set-key "]a" 'show-file-buffers)
  80.  (local-set-key "]b" 'switch-to-buffer-quick)
  81.  (local-set-key "]c" 'comment-region)
  82.  (local-set-key "]d" 'kill-line)
  83.  (local-set-key "]i" 'overwrite-mode)
  84.  (local-set-key "]j" 'merge-lines)
  85.  (local-set-key "]k" 'kill-region)
  86.  (local-set-key "]n" 'bury-buffer)
  87.  (local-set-key "]o" 'open-line-below)
  88.  (local-set-key "]r" 'search-forward)
  89.  (local-set-key "]s" 'ispell-complete-word)
  90.  (local-set-key "]t" 'toggle-truncate)
  91.  (local-set-key "]u" 'uncomment-region)
  92.  (local-set-key "]w" 'widen)
  93.  (local-set-key "]y" 'yank)
  94.  (local-set-key "]z" 'zap-to-char)
  95.  (local-set-key "]]" 'self-insert-command)
  96.  
  97. (defvar fortran-mode-keys    nil "*Nil if fortran mode keys have not yet been defined.")
  98. (defvar ccmfor-mode-keys     nil "*Nil if ccmfor mode keys have not yet been defined.")
  99. (defvar text-mode-keys       nil "*Nil if text-mode keys have not yet been defined.")
  100. (defvar emacs-lisp-mode-keys nil "*Nil if emacs-lisp mode keys have not yet been defined.")
  101. (defvar tex-mode-keys        nil "*Nil if tex mode keys have not yet been defined.")
  102.  
  103. (defun define-fortran-mode-keys () "Define additional fortran-mode keys."
  104. (if fortran-mode-keys  ()  (setq fortran-mode-keys t)
  105.  (local-set-key "]j" 'ccmfor-unsplit-nextline)
  106.  (local-set-key "]e" 'end-of-fortran-subprogram)
  107.  (local-set-key "]ff" 'fortran-compile-buffer)
  108.  (local-set-key "]fb" 'fortran-beautify-subprogram)    
  109.  (local-set-key "]fc" 'fortran-compile-buffer)         
  110.  (local-set-key "]fe" 'end-of-fortran-subprogram)      
  111.  (local-set-key "]fm" 'mark-fortran-subprogram)        
  112.  (local-set-key "]fn" 'narrow-to-fortran-subprogram)   
  113.  (local-set-key "]fs" 'beginning-of-fortran-subprogram)
  114.  (local-set-key "]g" 'get-subroutine)
  115.  (local-set-key "]l" 'lock)
  116.  (local-set-key "]m" 'mark-fortran-subprogram)
  117.  (local-set-key "]pm" 'mark-jobstep)        
  118.  (local-set-key "]pn" 'narrow-to-jobstep)   
  119.  (local-set-key "]pb" 'beautify-jobstep)    
  120.  (local-set-key "]pe" 'end-of-jobstep)      
  121.  (local-set-key "]ps" 'beginning-of-jobstep)
  122.  (local-set-key "]pp" 'printout)
  123.  (local-set-key "]pd" 'printout-debug)
  124.  (local-set-key "]s" 'fortran-split-line)
  125.  (local-set-key "]w" 'fortran-window-create)
  126.  (local-set-key "]x" 'f77-file)
  127. ))
  128.  
  129.  
  130. (defun define-text-mode-keys () "Define additional text-mode keys."
  131. (if text-mode-keys ()  (setq text-mode-keys t)
  132. ))
  133.  
  134. (defun define-emacs-lisp-mode-keys () "Define additional emacs-lisp-mode keys."
  135. (if emacs-lisp-mode-keys  () 
  136.  (setq emacs-lisp-mode-keys t)
  137.  (local-set-key "]b" 'beginning-of-defun)
  138.  (local-set-key "]e" 'end-of-defun)
  139.  (local-set-key "]m" 'mark-defun)
  140.  (local-set-key "]l" 'narrow-to-defun)
  141.  (local-set-key "]x" 'eval-defun)
  142.  ))
  143.  
  144. (defun define-tex-mode-keys () "Define additional tex-mode keys."
  145. (if tex-mode-keys () (setq tex-mode-keys t)
  146.  (local-set-key "]x" 'tex-file)
  147.  (local-set-key "]g" 'ghostview-tex-file)
  148.  (local-set-key "]p" 'print-tex-file)
  149. ))
  150.  
  151. (defun define-ccmfor-mode-keys () "Define additional ccmfor-mode keys."
  152. (if ccmfor-mode-keys  ()  (setq ccmfor-mode-keys t)
  153.  (local-set-key "]j" 'ccmfor-unsplit-nextline)
  154.  (local-set-key "]-" 'ccmfor-insert-dash-comment)
  155.  (local-set-key "]a" 'ccmfor-align-continuation)
  156.  (local-set-key "]A" 'ccmfor-align-continuation)
  157.  (local-set-key "]e" 'end-of-ccmfor-subprogram)
  158.  (local-set-key "]E" 'end-of-ccmfor-subprogram)
  159.  (local-set-key "]f" 'ccmfor-fill-align-continuation)
  160.  (local-set-key "]F" 'ccmfor-fill-align-continuation)
  161.  (local-set-key "]l" 'ccmfor-indent-line)
  162.  (local-set-key "]L" 'ccmfor-indent-line)
  163.  (local-set-key "]m" 'mark-ccmfor-subprogram)
  164.  (local-set-key "]M" 'mark-ccmfor-subprogram)
  165.  (local-set-key "]p" 'ccmfor-previous-statement)
  166.  (local-set-key "]P" 'ccmfor-previous-statement)
  167.  (local-set-key "]s" 'ccmfor-split-line)
  168.  (local-set-key "]S" 'ccmfor-split-line)
  169.  (local-set-key "]u" 'ccmfor-unsplit-line)
  170.  (local-set-key "]U" 'ccmfor-unsplit-line)
  171.  (local-set-key "]w" 'ccmfor-window-create)
  172.  (local-set-key "]W" 'ccmfor-window-create)
  173.  ))
  174.  
  175.  
  176.  
  177.