Google
 

Trailing-Edge - PDP-10 Archives - mit_emacs_170_teco_1220 - emacs/henry.emacs
There are no other files named henry.emacs in the archive.
!* Hey Emacs, this file contains -*-TECO-*- code!
!~FILENAME~:! !HENRY's Emacs Init File!
.EMACS
!& Setup .EMACS Library:! !S Initialization macro for Emacs library.!

-1 FS _ Disable 		    !* Disable back arrow. Safer to do F_ to get it. !
1U Auto_Directory_Display 	    !* Display directory after each write file command. !
85U Fill_Column 		    !* Fill text to column 85 [pub width].!
1U Auto_Save_Default 
M(M.M &_Make_Variable ) Auto_Save_Filenames 

[0 FS H SNAME  :F6 U0
:i Auto_Save_Filenames 0;_SAVE__> 
]0
                                    !* Protect against system crash, or user crash. !
M(M.M &_Make_Variable)File_Versions_Kept
1uFile_Versions_Kept              !* Keep only 1 version of a file.!
M(M.M &_Make_Variable)Text_Mode_Hook        
                                    !* Always go into fill mode when in Text mode !
                                    !* Change TAB [& LF] to do Indent Relative !
                                    !* [to previous line] !
:IText_Mode_Hook 1,1M.LAuto_Fill_Modew
                   M.M ^R_Indent_Relative U	 

0M(M.M Indent_Tabs_Mode )          !* Use spaces always for indenting. Tabs violate !
                                    !* the What You See is What You Get principle. !
M(M.M &_Make_Variable ) Lisp_Indentation_Hook 
:I Lisp_Indentation_Hook          !* Disable crufty function-dependent indenting!

M(M.M &_Make_Variable ) Underline_Begin 
:i Underline_Begin ~             !* Underline surrounded by ~squiggles~ !

M(M.M &_Make_Variable ) Underline_End 
:i Underline_End ~

M(M.M &_Make_Variable ) Tags_Find_File      !* Tags uses Find File for moving between files!
1u Tags_Find_File 

M(M.M &_Make_Variable ) WORDAB_All_Caps     !* Word abbrev uses case you type!
1u WORDAB_All_Caps 

M(M.M &_Make_Variable ) Dired_Long_Format     
1u  Dired_Long_Format             !* Dired displays whole file names before deleting !

M(M.M &_Make_Variable ) Emphasis_Font_Begin         !* Inserted by meta-squiggle!
M(M.M &_Make_Variable ) Emphasis_Font_End     
:i  Emphasis_Font_Begin ~
:i  Emphasis_Font_End ~



:iTemp_File_FN2_ListOLRECTEMPCOMPRSUNFASL_FASL__UNFA_PUIPUZPUGTEMPOUTPUTPRESS
                                    !* add to reapable FN2's COMPRS [EMACS], _FASL_, _UNFA_!
                                    !* [NCOMPLR], PUI, PUG, PUZ [PUB], TEMP, OUTPUT, PRESS.!

-1 FS ^H PRINT 		    !* Printing of  as back space.!
-1 FS ^M PRINT 
				carr!*gPrinting of 

!* Character syntax for Reader macros.!

[*5+1:F..D(		    !* Treat [ like (!
]*5+1:F..D)		    !* Treat ] like )!
{*5+1:F..D(		    !* Treat { like (!
}*5+1:F..D)		    !* Treat } like )!
"*5+1:F..D|		    !* Treat " like |!
`*5+1:F..D'		    !* Treat ` like '!
,*5+1:F..D'		    !* Treat , like '!

!* Character syntax for special characters found in identifiers!

-*5+1:F..DA		    !* Treat - like A!
:*5+1:F..DA		    !* Treat : like A!
**5+1:F..DA		    !* Treat * like A!
#*5+1:F..DA		    !* Treat # like A!
_*5+1:F..DA		    !* Treat _ like A!



!* Real time editing character redefinitions.!

! seems to have disappeared ... !
!(M.M ^R_MM_Via_Minibuffer )u...X ! !* C-M-X gets minibuffer with MM !
(M.M ^R_Make_[])U..[ 
(M.M ^R_Move_Over_])U..]
(M.M ^R_Make_{})U..{
(M.M ^R_Move_Over_})U..}
(M.M ^R_Forward_Paragraph )U..N    !* Paragraph commands displaced by matched brackets!
(M.M ^R_Backward_Paragraph )U..P   !* They displace useless Lisp comment commands!
(M.M ^R_End_Sentence)U..         
(M.M ^R_End_Exclamation)U.!  
(M.M ^R_End_Question)U.?
(M.M ^R_Directory_Display)U...D
(M.M ^R_Indent_Miser)U..
(M.M ^R_String_Search )U.S       !* String search the default on Control-S.!
(M.M ^R_Incremental_Search )U...S        !* Meta-Control-S gets Excremental Search.!
(M.M ^R_Reverse_String_Search )U.R
(M.M ^R_View_File )U:.X(V)       !* Control-x V does View File. !
(M.M ^R_Double_Quotes )U.."      !* Type matching sets of double quotes, vertical bars.!
(M.M ^R_Vertical_Bars )U..|
(M.M ^R_Squiggles )U..~
(M.M ^R_Stack_List_Vertically U..O)

!* M(M.M &_Make_Variable ) Word_Abbrev_Hook   ! !* Make extra characters expand abbreviations!
!* ^:I Word_Abbrev_Hook `                   !
!*   M.M ^R_Expand_And_Call_Old_Char U..)  !
!*  M.M ^R_Expand_And_Call_Old_Char U..    !
!*   M.M ^R_Expand_And_Call_Old_Char U.!  
!*   M.M ^R_Expand_And_Call_Old_Char U.?   !
!* `                                          !

FS XJNAME :F6 [0  !* get the real job name and put in in q-register 0 !
F~0ACT1T"E M(M.M Actor ) ' !* If we're working on actor, set things up for it !

EREMACS;*_EMACS ^Y [0 HFX0 M0 ]0 
!^R Enclose List:! !^R Encloses a list in parentheses!

1M(M.M ^R_Make_() ) 
!^R Make []:! !^R Insert [] putting point between them.
Also make a space before them if appropriate.
With argument, put the ] after the specified number
of already existing s-expressions.  Thus, with argument 1,
puts extra parens around the following s-expression.!

    .[0
    I[ FF"N ^ FLL' I] .[1
    Q0J C Q0,Q1
!^R Move Over ]:! !^R Move over a ], updating indentation.
Any indentation before the ] is deleted.
LISP-style indentation is inserted after the ].!
    F[S STRING
    S] R
    @-F
_	K			    !* Delete any indentation or CRLFs before the ].!
    .[0
    C -1F"G S]'
    MM			    !* The ] should be right after the last other text.!
    @M(M.M ^R_Indent_for_LISP)	    !* Then indent after the ].!
    Q0,.
!^R Make {}:! !^R Insert {} putting point between them.
Also make a space before them if appropriate.
With argument, put the } after the specified number
of already existing s-expressions.  Thus, with argument 1,
puts extra parens around the following s-expression.!

    .[0
    I{ FF"N ^ FLL' I} .[1
    Q0J C Q0,Q1
!^R Move Over }:! !^R Move over a }, updating indentation.
Any indentation before the } is deleted.
LISP-style indentation is inserted after the }.!
    F[S STRING
    S} R
    @-F
_	K			    !* Delete any indentation or CRLFs before the }.!
    .[0
    C -1F"G S}'
    MM			    !* The } should be right after the last other text.!
    @M(M.M ^R_Indent_for_LISP)	    !* Then indent after the }.!
    Q0,.
!^R End Sentence:! !^R Inserts ".", new line, capitalizes first word of sentence.!

I.
 .(1M(M.M ^R_Backward_Sentence ) 
    1^FC)J
 -3F 
!^R End Exclamation:! !^R Inserts Excl, new line, capitalizes first word of sentence.!

I!
 .(1M(M.M ^R_Backward_Sentence ) 
    1^FC)J
 -3F 
!^R End Question:! !^R Inserts "?", new line, capitalizes first word of sentence.!

I?
 .(1M(M.M ^R_Backward_Sentence ) 
    1^FC)J
 -3F 
!^R Indent Miser:! !^R Indents for Lisp, but in Miser mode, aligned with CAR of form.!

W .,(
[5
 .(
   1:<-FUL FDL>"N 1 ' 
   FS H POSITION U5
  )J I
 Q5<I_>
 )Z 
!^R Directory Display:! !^R Displays Directory. Arg gives most-recent-first listing.!

F[D FILE 
-4"E M(M.M View_File )DIR: CDATE_DOWN 
   '"# EY ' 
!Actor:! !C Setup for working on Actors. Sets modes, loads tags.!

      "*5+1:F..D'		    !* Treat " like '!
      M(M.M Auto_Save_Mode )
      M(M.M Lisp_Mode )
      M(M.M Abbrev )
      M(M.M Load_Library ) LISPT        !* Load Lisp-Teco interface.!
!      M(M.M Read_Word_Abbrev_File) ACTOR;ACTOR_ABBREV !
      M(M.M Quick_Read_Word_Abbrev_File) ACTOR;ACTOR_ABBREV 
      1 M(M.M Visit_Tag_Table) ACTOR;ACTOR_TAGS  
!Abbrev:! !C Loads Word Abbreviation library and sets mode.!
      M(M.M Load_Library ) WordAb  
      M(M.M Word_Abbrev_Mode) 
!Space Comment:! !C Converts to new format comment.!

 M(M.M Replace_String);;;###
 M(M.M Replace_String);;*PAGE~~~
 M(M.M Replace_String);;;;_
 M(M.M Replace_String)###;;;
 M(M.M Replace_String)~~~;;*PAGE
!Comment Region:! !C Comments out code within region.!
[0 [1
FS H POSITION U0                   !* Commenting occurs at horizontal position of cursor!
:,. F M(M.M Count_Lines )U1    !* Do it for the number of lines in the region.!
Q1 < I;;;_                         !* Insert Comment string, set horiontal position.!
     1:< 1,Q0 FM >
   > 
 
!Paginate Lisp:! !C Puts page boundaries in Lisp code so that don't break S-expressions.!

J                                   !* Take it from the Top.!
M(M.M Replace_String)
                                  !* Remove previous pagination.!
[0 [1 [2 [3 0U1                     !* Q1 counts lines on current page. !
F[S STRING 
"N '"# 60' U2                   !* Argument is Page Size maximum.!
< .( .,(:S
(; R .U3 .)M(M.M Count_Lines) U0   !* Count the number of lines in the next sexp.!
   )J
  Q2-Q0"L  I
                                   !* If its greater than the desired page size,!
           Q3J                      !* put it on a separate page.!
           I
 
           0U1 '"#
  Q2-(Q1+Q0)"L I
                                   !* If adding this list to the current page causes!
             Q3J                    !* overflow, !
             Q0U1 '"#               !* Break page before this s-exp, move past it.!
    (Q1+Q0) U1                      !* Otherwise, add this to current page. !
    Q3J '
>
J 
!^R View File:! !^R Looks at a file without reading it in and creating a buffer.!
    F[ D_FILE                      !* Viewing a file doesn't set file defaults.!
    5,M(M.M &_Read_Line) View_File[1	    !* Read arg.!
    FQ1"L '			    !* He rubbed past start => give up.!
    M(M.M View_File)1	    !* Read file, using user's arg on top of that default.!
    
!^R Reverse String Search:! !^R String Search in the reverse direction.!
   - :M (M.M ^R_String_Search )
!New Lisp File:! !C Start editing a new file containing Lisp code.!

   M(M.M Lisp_Mode )
   JI;;;_Hey,_Emacs,_this_file_contains_-*-_Mode:_Lisp;_Package:_User;_Base: 10.;_-*-_code!
;;;_(c)_1981_Henry_Lieberman,_Massachusetts_Institute_of_Technology

!New Text File:! !C Start editing a new file containing Pub source!

   M(M.M Text_Mode )
   JI. << _Hey,_Emacs,_this_file_contains_-*-_Mode:_Text;_Package:_User;_Base: 10.;_-*-_code >>
._<<_(c)_1981_Henry_Lieberman,_Massachusetts_Institute_of_Technology_>>
._require_"Henry;Pubmac"_source_file
.

!^R Double Quotes:! !^R Insert a pair of double quotes, leaves you inside them.!
   I"" R 
   .-1,.+1 
!^R Vertical Bars:! !^R Insert a pair of vertical bars, leaves you inside them.!
   I|| R 
   .-1,.+1 
!^R Squiggles:! !^R Insert a pair of squiggles, leaves you inside them.!
   .(GEmphasis_Font_Begin
      .(GEmphasis_Font_End [1 .U1 )J
     ),Q1 
!RMAIL:! !C Read mail -- Alaias for obsolete name!
 MM_Read_Mail
!Make Variable:! !C Makes a variable -- Alaias for obsolete name!
 MM_&_Make_Variable
!^R Stack List Vertically:! !^R Grind the list following . vertically.
The list following . is ground into standard grind format.
If ^U is given as an argument, miser format is used.!

    m.m ^R_Forward_Sexp[1
    m.m ^R_Indent_New_Line[2
    m.m ^R_Indent_for_LISP[3
    .[6				    !* Q6 saves . so can restore . later!
    [4 [5
    :flr c			    !* Move up to next list, beyond the open paren!
    1a-)"e q6j .'		    !* Nasty case of () exits immediately!
    -4"N 1m1f @:flr 1a-)"e q6j .''	    !* If not miser format, move over first sexp!
    <1m1f			    !* Move forward over a sexp!
        .u4 @:flr .u5		    !* Q4 saves ., then move to next sexp, then Q5 saves .!
        1a-)"e 0;'		    !* If ) seen, then we have reached end of list - exit!
	q4,q5:fb
(q5j)"L			    !* If we crossed a line boundary,!
	    m3f'"#		    !*  then just tab!
	    m2f'>		    !* Otherwise move to a new line and tab!
    q6j .			    !* Restore . and exit!
!XGP Hard Copy:! !C Makes an XGP'able @ listing. String arg for language, usually Lisp.!

[1 [2 :I1 :I2
FQ2"E :I2LISP '
[0
^_:@_ /L[2]/3F[20FGI,20FG,20FGI]/%/S/120W/C/$/1"_1
!* Formerly: :@_1_/L[2]/3F[25FRI1,HENRY;MYFONT,25FGI1]/#/^/%/S/96W !
:VP_ 1 
!Dover Hard Copy:! !C Makes a Doverable @ listing. String arg for language, usually Lisp.!

[1 [2 :I1 :I2
FQ2"E :I2LISP ' 
[3 FS H SNAME  :F6 U3
[0
^_:@_ /O[3;THIRD:PRESS@_>]/D[DOVER]/3F[GACHA 6I, GACHA 7, GACHA 6I] /L[2]/%/S/120W/Q/C/$/1"/65V_1
:COPY_AI:3;PRESS@_>,MC:.DOVR.;PRESS@_>
:DELETE_AI:3;PRESS@_>
:VP_ 1 
!Hard Copy:! !C Makes a Doverable @ listing. String arg for language, usually Lisp.!
:M(M.M Dover_Hard_Copy )