pcs/newpcs/edwin.ini

128 lines
5.6 KiB
INI
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;;;
;;; This is a sample EDWIN.INI file to demonstrate how to customize EDWIN for
;;; both keyboard input and display output. When placed in the same directory
;;; as PC Scheme, it will be loaded automatically the first time EDWIN is
;;; entered
;;;
;;;
;;; The following code is an example of customizing the color of Edwin's
;;; three windows; the editing buffer, the mode line, and the echo area.
;;; In the example, the text attribute of each window is set to a color
;;; that is different from the other windows. I'm not suggesting that you
;;; will like the colors, just that they are different.
;;;
;;; In order to write a general example (that will work for either TI or
;;; IBM machines), the PC Scheme variable PCS-MACHINE-TYPE is examined and
;;; the colors set according to the type of machine. TI is type 1 and the
;;; character-enable bit must be set by adding 8 to the color. Feel free to
;;; experiment with the code to determine a configuration that you are
;;; comfortable with
;;;
;;;
;;;(let ((type (if (eq? 1 pcs-machine-type) 8 0)))
;;; (window-set-attribute! buffer-screen 'text-attributes (+ type 7))
;;; (window-set-attribute! modeline-screen 'text-attributes (+ type 6))
;;; (window-set-attribute! typein-screen 'text-attributes (+ type 3)))
;;;
;;; The following code is used to customize your keyboard for use with EDWIN.
;;; It allows you to define new key sequences in terms of existing EDWIN key
;;; sequences. REMAP-EDWIN-KEY is a macro which takes two arguments, the new
;;; key sequence you wish to define, and the existing EDWIN key sequence. The
;;; arguments may be either a character or a list of characters representing
;;; the key codes for your particular machine. The key codes for your machine
;;; can be found in the technical reference manual for your machine, or by
;;; executing the function GET-KEYCODE. GET-KEYCODE allows you to enter any
;;; single key sequence, and returns the corresponding code to use with
;;; REMAP-EDWIN-KEY.
;;;
;;; Remember that EDWIN commands (represented by certain key sequences) are of
;;; 5 basic types; simple, control, meta, meta-control, and control-x. SIMPLE
;;; commands are single character commands (normally just insert into the
;;; buffer), CONTROL commands are entered by typing the ctrl key while pressing
;;; another character, META commands are entered by pressing either the escape
;;; or ctrl-z keys and then typing another character, META-CONTROL commands are
;;; entered by typing the meta prefix and then a ctrl key sequence, and
;;; CONTROL-X commands are entered by typing ctrl-x followed by another key
;;; sequence.
;;;
;;; The key codes for CTRL key sequences varies depending on the control key
;;; sequence entered. Some codes returned from the keyboard are extended key
;;; codes, or an extended code of 0 followed by the key code. For example, the
;;; key code returned from pressing CTRL-@ is a two key code of the extended
;;; key code (0) followed by the integer 3; this is represented in the following
;;; code as the list (extended-char (integer->char 3)). Use GET-KEYCODE to
;;; obtain the key codes necessary to remap keys via EDWIN-REMAP-KEY.
(define meta-char (integer->char 27)) ; Key code for Edwin META key
(define ctrl-x (integer->char 24)) ; Key code for Edwin CTRL-X
(define extended-char (integer->char 0)) ; Denotes an extended key code
;
; This is a helper function which returns the key codes for any single
; key sequence. It is useful in determining the key codes returned from
; your particular machine and can be used to determine the arguments for
; REMAP-EDWIN-KEY
;
(define (get-keycode)
(let ((code (read-char)))
(if (char=? code (integer->char 0))
`(list extended-char (integer->char ,(char->integer (read-char))))
`(integer->char ,(char->integer code)))))
;
; Redefine keys. The following will work for either TI or IBM machines.
;
(remap-edwin-key
(list extended-char (integer->char 59)) ;New Key = F1
(integer->char 22)) ;Old Key = CNTRL-V (Scroll Up)
(remap-edwin-key
(list extended-char (integer->char 60)) ;New Key = F2
(list meta-char #\V)) ;Old key = Meta-V (Scroll Down)
(remap-edwin-key
(list extended-char (integer->char 61)) ;New Key = F3
(list extended-char (integer->char 3))) ;Old Key = CNTRL-@ (Set Mark)
(remap-edwin-key
(list extended-char (integer->char 62)) ;New Key = F4
(list (integer->char 24) ;Old key = CNTRL-X CNTRL-X
(integer->char 24))) ; (Xchg mark and point)
(remap-edwin-key
(list extended-char (integer->char 63)) ;New key = F5
(integer->char 23)) ;Old Key = CNTRL-W (Kill Region)
(remap-edwin-key
(list extended-char (integer->char 64)) ;New key = F6
(integer->char 25)) ;Old key = CNTRL-Y (Unkill)
(remap-edwin-key
(list extended-char (integer->char 67)) ;New key = F9
(list meta-char (integer->char 60))) ;Old key = META < (Go buffer top)
(remap-edwin-key
(list extended-char (integer->char 68)) ;New key = F10
(list meta-char (integer->char 62))) ;Old key = META > (buffer bottom)
(remap-edwin-key
(list extended-char (integer->char 83)) ;New Key = DEL
(integer->char 04)) ;Old Key = CNTRL-D
(remap-edwin-key
(list extended-char (integer->char 115)) ;New key = CNTRL <-
(list meta-char (integer->char 02))) ;Old key = META-CNTRL-B
;Move forward over s-exp
(remap-edwin-key
(list extended-char (integer->char 116)) ;New Key = CNTRL ->
(list meta-char (integer->char 06))) ;Old key = META-CNTRL-F
;Move backward over s-exp