mirror of
https://github.com/rfivet/uemacs.git
synced 2024-12-23 17:46:23 -05:00
f313bcf64a
NOTE! MicroEmacs is very much a byte-based editor, and the new utf-8 support is purely an issue of terminal input and output. The file contents themselves are in the 8-bit space. In that space, Unicode is the same as Latin1. The new mode is called "utf-8", and is enabled automatically by the new emacs.rc when $LANG contains the substring "UTF-8". I'm sure people would like to some day also edit real UTF-8 contents, rather than just edit old 8-bit Latin1 contents in a UTF-8 terminal. However, that's an independent (and much bigger and thornier) issue. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
290 lines
5.5 KiB
Plaintext
290 lines
5.5 KiB
Plaintext
; EMACS.RC / .emascrc
|
||
;
|
||
; Startup file for MicroEMACS 3.9 and uEmacs/PK 4.0
|
||
; This file is executed every time the editor is entered.
|
||
;
|
||
; Modified by Petri Kutvonen, last edited September 1991.
|
||
|
||
set $discmd "FALSE"
|
||
|
||
; First, try to resolve if we are on a PC ... yes, this is a kludge
|
||
|
||
!if &seq $sres "NORMAL"
|
||
set %system "OTHER"
|
||
!else
|
||
set %system "PC"
|
||
!endif
|
||
|
||
!if &seq %system "PC"
|
||
|
||
; PC specific initialization
|
||
|
||
write-message "(Setting up)"
|
||
|
||
; Comment out or change this line if you want more than 25 lines,
|
||
; other possible $sres values include EGA and VGA
|
||
|
||
set $sres "CGA"
|
||
|
||
; Uncomment next line if your old screen "snows"
|
||
|
||
;set $flicker "TRUE"
|
||
|
||
; If your screen "snows" you'll not like scrolling
|
||
|
||
!if &seq $flicker "TRUE"
|
||
set $scroll "FALSE"
|
||
!endif
|
||
|
||
; Function keys (unshifted)
|
||
; f1 f2 f3 f4 f5 f6 f7 f8 f9 f10
|
||
; FN; FN< FN= FN> FN? FN@ FNA FNB FNC FND
|
||
|
||
bind-to-key help FN;
|
||
bind-to-key exit-emacs FND
|
||
|
||
; Function keys (shifted)
|
||
; F1 F2 F3 F4 F5 F6 F7 F8 F9 F10
|
||
; FNT FNU FNV FNW FNX FNY FNZ FN[ FN\ FN]
|
||
|
||
; Other special keys (unshifted)
|
||
; Home End Ins Del PgUp PgDn
|
||
; FNG FNO FNR FNS FNI FNQ
|
||
|
||
; Some common Alt-keys
|
||
; Alt-X Alt-Z Alt-C Alt-F Alt-O
|
||
; FN- FN, FN. FN! FN^X
|
||
|
||
bind-to-key exit-emacs FN-
|
||
bind-to-key quick-exit FN,
|
||
bind-to-key i-shell FN.
|
||
bind-to-key find-file FN!
|
||
bind-to-key view-file FN/
|
||
bind-to-key next-window FN^X
|
||
|
||
; Set screen colors
|
||
|
||
; You can define a DOS environment variable EMACS_BW (any value)
|
||
; if you don't like colors, e.g. if you have a LCD screen
|
||
|
||
!if &seq &env "EMACS_BW" ""
|
||
add-global-mode "blue"
|
||
add-global-mode "HIGH"
|
||
!endif
|
||
|
||
!endif
|
||
|
||
; Help facility
|
||
|
||
40 store-macro
|
||
set $discmd "FALSE"
|
||
!if ¬ &seq $cbufname "emacs.hlp"
|
||
write-message "(Loading Help)"
|
||
!force help
|
||
!force 8 resize-window
|
||
!if &seq %system "PC"
|
||
!if &seq &env "EMACS_BW" ""
|
||
add-mode "red"
|
||
!endif
|
||
bind-to-key execute-macro-38 FNI
|
||
bind-to-key execute-macro-37 FNQ
|
||
!else
|
||
bind-to-key execute-macro-38 FN5
|
||
bind-to-key execute-macro-37 FN6
|
||
!endif
|
||
beginning-of-line
|
||
2 forward-character
|
||
1 redraw-display
|
||
save-window
|
||
!if &seq %system "PC"
|
||
set %hlpupdn "<PgUp> / <PgDn>"
|
||
set %hlphelp "<F1>"
|
||
!else
|
||
set %hlpupdn "<Prev Scrn> / <Next Scrn>"
|
||
set %hlphelp "<Help>"
|
||
!endif
|
||
execute-macro-39
|
||
!else
|
||
set %hlpcode &lef $line 2
|
||
!if &seq %hlpcode ".."
|
||
set %hlptopic &mid $line 4 99
|
||
end-of-line
|
||
!force search-forward %hlptopic
|
||
beginning-of-line
|
||
2 forward-character
|
||
1 redraw-display
|
||
execute-macro-39
|
||
!else
|
||
!if &seq %system "PC"
|
||
bind-to-key previous-page FNI
|
||
bind-to-key next-page FNQ
|
||
!else
|
||
bind-to-key previous-page FN5
|
||
bind-to-key next-page FN6
|
||
!endif
|
||
!force restore-window
|
||
!force delete-window
|
||
clear-message-line
|
||
!endif
|
||
!endif
|
||
set $discmd "TRUE"
|
||
!endm
|
||
|
||
bind-to-key execute-macro-40 M-?
|
||
!if &seq %system "PC"
|
||
bind-to-key execute-macro-40 FN;
|
||
!else
|
||
bind-to-key execute-macro-40 FNh
|
||
!endif
|
||
|
||
; Help on Help
|
||
|
||
39 store-macro
|
||
!if &seq &rig $line 5 "INDEX"
|
||
write-message &cat "Select topic from list and press " %hlphelp
|
||
!else
|
||
write-message &cat "Use " &cat %hlpupdn &cat " to scan help file -- " &cat %hlphelp " to toggle help window"
|
||
!endif
|
||
!endm
|
||
|
||
; Previous help page
|
||
|
||
38 store-macro
|
||
!if &seq $cbufname "emacs.hlp"
|
||
beginning-of-line
|
||
!force search-reverse "=>"
|
||
2 forward-character
|
||
1 redraw-display
|
||
execute-macro-39
|
||
!else
|
||
previous-page
|
||
!endif
|
||
!endm
|
||
|
||
; Next help page
|
||
|
||
37 store-macro
|
||
!if &seq $cbufname "emacs.hlp"
|
||
beginning-of-line
|
||
2 forward-character
|
||
!force search-forward "=>"
|
||
1 redraw-display
|
||
execute-macro-39
|
||
!else
|
||
next-page
|
||
!endif
|
||
!endm
|
||
|
||
; Set up auto CMODE
|
||
|
||
36 store-macro
|
||
!if &seq &mid $cfname 1 7 "/tmp/Re"
|
||
add-mode "wrap"
|
||
!return
|
||
!endif
|
||
!if &gre &sin $cfname "/.ed" 0
|
||
add-mode "wrap"
|
||
!return
|
||
!endif
|
||
!if &gre &sin $cfname "/.let" 0
|
||
add-mode "wrap"
|
||
!return
|
||
!endif
|
||
!if &gre &sin $cfname "/.art" 0
|
||
add-mode "wrap"
|
||
!return
|
||
!endif
|
||
!if &gre &sin $cfname "/nn." 0
|
||
add-mode "wrap"
|
||
!return
|
||
!endif
|
||
set %rctmp &sin $cfname "."
|
||
!if &equ %rctmp 0
|
||
!return
|
||
!endif
|
||
set %rctmp &mid $cfname &add %rctmp 1 5
|
||
!if &or &seq %rctmp "c" &seq %rctmp "h"
|
||
add-mode "cmode"
|
||
!endif
|
||
!if &or &seq %rctmp "txt" &or &seq %rctmp "doc" &or &seq %rctmp "tmp" &seq %rctmp "tex"
|
||
add-mode "wrap"
|
||
!endif
|
||
|
||
!endm
|
||
|
||
bind-to-key execute-macro-36 M-FNR
|
||
|
||
; Setup for ASCII {|}[\] to ISO Latin-1 translation
|
||
|
||
21 store-macro
|
||
insert-string "<22>"
|
||
!endm
|
||
22 store-macro
|
||
insert-string "<22>"
|
||
!endm
|
||
23 store-macro
|
||
insert-string "<22>"
|
||
!endm
|
||
24 store-macro
|
||
insert-string "<22>"
|
||
!endm
|
||
25 store-macro
|
||
insert-string "<22>"
|
||
!endm
|
||
26 store-macro
|
||
insert-string "<22>"
|
||
!endm
|
||
|
||
27 store-macro
|
||
bind-to-key execute-macro-21 {
|
||
bind-to-key execute-macro-22 |
|
||
bind-to-key execute-macro-23 }
|
||
bind-to-key execute-macro-24 [
|
||
bind-to-key execute-macro-25 \
|
||
bind-to-key execute-macro-26 ]
|
||
write-message "ISO Latin-1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
!endm
|
||
|
||
28 store-macro
|
||
unbind-key {
|
||
unbind-key |
|
||
unbind-key }
|
||
unbind-key [
|
||
unbind-key \
|
||
unbind-key ]
|
||
write-message "ASCII {|}[\]"
|
||
!endm
|
||
|
||
bind-to-key execute-macro-27 ^X[
|
||
bind-to-key execute-macro-28 ^X]
|
||
|
||
; Make cut-paste easier in window systems
|
||
|
||
bind-to-key newline ^J
|
||
|
||
; uEmacs/PK specific initialization
|
||
|
||
!if &seq $progname "uEmacs/PK"
|
||
|
||
; Don't scroll on a Sun
|
||
|
||
!if &or &seq $TERM "sun" &seq $TERM "sun-cmd"
|
||
set $scroll "FALSE"
|
||
!endif
|
||
|
||
; Execute local initialization files
|
||
|
||
!if &seq %system "PC"
|
||
!force execute-file "EM.RC"
|
||
!else
|
||
!force execute-file &cat $HOME "/.emrc"
|
||
!force execute-file ".emrc"
|
||
!endif
|
||
!endif
|
||
|
||
!if &gre &sin $LANG "UTF-8" 0
|
||
add-global-mode "utf-8"
|
||
!endif
|
||
|
||
set $discmd "TRUE"
|