oemacs.el
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:8k
源码类别:

通讯编程

开发平台:

Visual C++

  1. ;; macros to go with oemacs
  2. ; suntool-map is the map for "C-x*", the oemacs prefix for function keys
  3. ; commented-out lines agree with the settings in $(EMACS)/lisp/term/sun.el
  4. (setq suntool-map-hooks '( ; not your usual hook list
  5. ; (define-key suntool-map "al" 'keyboard-quit) ; Stop
  6. ; (define-key suntool-map "bl" 'redraw-display) ; Again L2
  7. ; (define-key suntool-map "bM-l" 'repeat-complex-command); M-Again = C-X ESC
  8. ; (define-key repeat-complex-command-map "C-x*bM-l"
  9. ;                   'previous-complex-command) ; M-Again M-Again...
  10.   (define-key suntool-map "bL" 'rerun-prev-command) ; AGAIN (no confirm)
  11. ; (define-key suntool-map "bM-L" 'rerun-prev-command) ; M-AGAIN
  12. ; (define-key suntool-map "cl" 'buffer-menu) ; Props
  13. ; (define-key suntool-map "dl" 'undo) ; Undo
  14. ; (define-key suntool-map "el" 'ignore-key) ; Front
  15. ; (define-key suntool-map "fl" 'sun-select-region) ; Copy
  16. ; (define-key suntool-map "f," 'copy-region-as-kill) ; C-Copy
  17. ; (define-key suntool-map "gl" 'ignore-key) ; Open
  18. ; (define-key suntool-map "hl" 'sun-yank-selection) ; Paste
  19. ; (define-key suntool-map "h," 'yank) ; C-Paste
  20. ; (define-key suntool-map "il" 'research-forward) ; Find (with default)
  21. ; (define-key suntool-map "iM-l" 'research-backward) ; M-Find
  22. ; (define-key suntool-map "iL" 'isearch-forward-regexp) ; FIND (incremental)
  23. ; (define-key suntool-map "iM-L" 'isearch-backward-regexp); M-FIND
  24. ; (define-key suntool-map "i," 're-search-forward) ; C-Find (ordinary)
  25. ; (define-key suntool-map "iM-," 're-search-backward) ; C-M-Find
  26.   (define-key suntool-map "jl" 'sun-cut-region) ; Cut
  27.   (define-key suntool-map "j," 'kill-region-and-unmark) ; C-Cut
  28.   (define-key suntool-map "jL" 'pop-the-mark) ; CUT
  29. ; (define-key suntool-map "jM-l" 'exchange-point-and-mark); M-Cut
  30.   (define-key suntool-map "at" 'bury-buffer) ; F1
  31. ; (define-key suntool-map "bt" 'toggle-selective-display)  ; F2
  32. ; (define-key suntool-map "ct" 'scroll-down-in-place) ; F3
  33. ; (define-key suntool-map "cT" '(lambda(n) (interactive "p") (scroll-down n)))
  34. ; (define-key suntool-map "dt" 'scroll-up-in-place) ; F4
  35. ; (define-key suntool-map "dT" '(lambda(n) (interactive "p") (scroll-up n)))
  36.   (define-key suntool-map "et" 'jumpup) ; F5
  37. ; (define-key suntool-map "ft" 'shrink-window) ; F6
  38. ; (define-key suntool-map "fT" 'shrink-window-horizontally) ; Shift-F6
  39. ; (define-key suntool-map "gt" 'enlarge-window) ; F7
  40. ; (define-key suntool-map "gT" 'enlarge-window-horizontally) ; Shift-F7
  41.   (define-key suntool-map "ht" 'tags-search) ; F8
  42.   (define-key suntool-map "it" 'tags-query-replace) ; F9
  43.   (define-key suntool-map "jt" 'narrow-to-region) ; F10
  44.   (define-key suntool-map "jM-t" 'narrow-to-page) ; M-F10
  45.   (define-key suntool-map "kt" 'revert-buffer)   ; F11
  46.   (define-key suntool-map "kM-T" 'quick-revert-buffer) ; Shift-M-F11
  47.   (define-key suntool-map "kM-t" 'quick-revert-other-buffer) ; M-F11
  48.   (define-key suntool-map "lt" 'goto-line) ; F12
  49.   (define-key suntool-map "lM-t" 'goto-line) ; M-F12
  50.   (define-key suntool-map "ar" 'redraw-display) ; Pause, R1
  51.   (define-key suntool-map "br" 'call-secondlast-kbd-macro) ; PrSc, R2
  52.   (define-key suntool-map "cr" 'ignore-key) ; Scroll Lock Break, R3
  53.   (define-key suntool-map "dr" 'unbound-key) ; KP=, R4
  54.   (define-key suntool-map "dM-r" 'bind-last-kbd-macro-to-KP=) ; M-KP=, M-R4
  55.   (define-key suntool-map "er" 'unbound-key) ; KP/, R5
  56.   (define-key suntool-map "eM-r" 'bind-last-kbd-macro-to-KP/) ; M-KP/, M-R5
  57.   (define-key suntool-map "fr" 'unbound-key) ; KP*, R6
  58.   (define-key suntool-map "fM-r" 'bind-last-kbd-macro-to-KP*) ; M-KP*, M-R6
  59. ; (define-key suntool-map "gr" 'beginning-of-buffer) ; Home, R7
  60. ; (define-key suntool-map "hr" 'previous-line) ; Up, R8
  61. ; (define-key suntool-map "ir" 'scroll-down) ; PgUp, R9
  62. ; (define-key suntool-map "iR" 'backward-page) ; Shift-PGUP
  63. ; (define-key suntool-map "jr" 'backward-char) ; Lft, R10
  64.   (define-key suntool-map "kr" "C-uC-l") ; KP5, R11
  65. ; (define-key suntool-map "lr" 'forward-char) ; Rt, R12
  66. ; (define-key suntool-map "mr" 'end-of-buffer) ; End, R13
  67. ; (define-key suntool-map "nr" 'next-line) ; Dn, R14
  68. ; (define-key suntool-map "or" 'scroll-up) ; PgDn, R15
  69. ; (define-key suntool-map "oR" 'forward-page) ; Shift-PGUP
  70.   (define-key suntool-map "ab" 'apropos)  ; Help
  71.   (define-key suntool-map "aM-b" 'mouse-help)   ; M-Help
  72.   (define-key suntool-map "aB" 'describe-bindings)  ; HELP
  73.   (define-key suntool-map "aM-B" 'describe-mouse-bindings); M-HELP
  74.   (define-key suntool-map "a"" 'command-apropos) ; C-Help
  75.   (define-key suntool-map "aC-B" 'apropos) ; C-HELP
  76.   (define-key suntool-map "aM-C-B" 'help-for-dummies) ; M-C-HELP
  77.   (define-key suntool-map "bb" 'ignore-key) ; Alt
  78.   (define-key suntool-map "cb" 'ignore-key) ; AltGraph
  79.   (define-key suntool-map "db" 'auto-fill-mode) ; Keypad Ins
  80.   (define-key suntool-map "eb" 'overwrite-mode) ; Keypad Del
  81.   (define-key suntool-map "fb" 'call-last-kbd-macro) ; Keypad Enter
  82.   (define-key suntool-map "gb" 'forward-paragraph) ; Keypad +
  83.   (define-key suntool-map "hb" 'backward-paragraph) ; Keypad -
  84.   ))
  85. ; redefinition of emacs functions
  86. (defun end-of-buffer ()
  87.   "Move point to the end of the buffer; leave a mark at previous position.
  88. Scroll so that point is at the bottom of the window, if possible."
  89.   (interactive)
  90.   (push-mark)
  91.   (goto-char (point-max))
  92.   (recenter -1))
  93. ; new functions
  94. (defun jumpup ()
  95.   "Scroll so that point is at the top of the window."
  96.   (interactive)(recenter 0))
  97. (defun quick-revert-buffer ()
  98.   "Revert the buffer without asking for confirmation."
  99.   (interactive)
  100.   (revert-buffer t t))
  101. (defun quick-revert-other-buffer (n)
  102.   "Revert the Nth other buffer without asking for confirmation."
  103.   (interactive "p")
  104.   (other-window n)
  105.   (revert-buffer t t)
  106.   (other-window (- n)))
  107. (defun bind-last-kbd-macro-to-KP= ()
  108.   "Assign the last keyboard macro to the = key on the numeric keypad."
  109.   (interactive)
  110.   (define-key suntool-map "dr" last-kbd-macro))
  111. (defun bind-last-kbd-macro-to-KP/ ()
  112.   "Assign the last keyboard macro to the / key on the numeric keypad."
  113.   (interactive)
  114.   (define-key suntool-map "er" last-kbd-macro))
  115. (defun bind-last-kbd-macro-to-KP* ()
  116.   "Assign the last keyboard macro to the * key on the numeric keypad."
  117.   (interactive)
  118.   (define-key suntool-map "fr" last-kbd-macro))
  119. (defvar secondlast-kbd-macro nil)
  120. (defun pre-end-kbd-macro ()
  121.   "Preserve last-kbd-macro as secondlast-kbd-macro, then end-kbd-macro."
  122.   (interactive)
  123.   (setq secondlast-kbd-macro last-kbd-macro)
  124.   (end-kbd-macro))
  125. (substitute-key-definition 'end-kbd-macro 'pre-end-kbd-macro global-map)
  126. (substitute-key-definition 'end-kbd-macro 'pre-end-kbd-macro esc-map)
  127. (substitute-key-definition 'end-kbd-macro 'pre-end-kbd-macro ctl-x-map)
  128. (defun call-secondlast-kbd-macro (n)
  129.   "Like call-last-kbd-macro, but uses the macro defined before that."
  130.   (interactive "p")
  131.   (let ((last-kbd-macro secondlast-kbd-macro))
  132.     (call-last-kbd-macro n)))
  133. ; The turn-numlock-on/off commands are created automatically by oemacs
  134. ; when the NumLock light changes state.
  135. (defun turn-numlock-on () ; numlock is always off when oemacs starts
  136.   "Bind keys in keypad area to numeric interpretations."
  137.   (interactive)
  138.   (setq hb-binding (lookup-key suntool-map "hb"))
  139.   (setq gb-binding (lookup-key suntool-map "gb"))
  140.   (setq fb-binding (lookup-key suntool-map "fb"))
  141.   (setq eb-binding (lookup-key suntool-map "eb"))
  142.   (setq db-binding (lookup-key suntool-map "db"))
  143.   (define-key suntool-map "hb" "-")
  144.   (define-key suntool-map "gb" "+")
  145.   (define-key suntool-map "fb" "C-j")
  146.   (define-key suntool-map "eb" ".")
  147.   (define-key suntool-map "db" "0"))
  148. (defun turn-numlock-off ()
  149.   "Rebind keys in keypad area to function-key interpretations."
  150.   (interactive)
  151.   (define-key suntool-map "hb" hb-binding)
  152.   (define-key suntool-map "gb" gb-binding)
  153.   (define-key suntool-map "fb" fb-binding)
  154.   (define-key suntool-map "eb" eb-binding)
  155.   (define-key suntool-map "db" db-binding))
  156. (defvar hb-binding nil)
  157. (defvar gb-binding nil)
  158. (defvar fb-binding nil)
  159. (defvar eb-binding nil)
  160. (defvar db-binding nil)