BSD 4_3_Reno development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Wed, 19 Jul 1989 14:32:47 +0000 (06:32 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Wed, 19 Jul 1989 14:32:47 +0000 (06:32 -0800)
Work on file usr/contrib/lib/emacs/etc/TERMS

Synthesized-from: CSRG/cd2/4.3reno

usr/contrib/lib/emacs/etc/TERMS [new file with mode: 0644]

diff --git a/usr/contrib/lib/emacs/etc/TERMS b/usr/contrib/lib/emacs/etc/TERMS
new file mode 100644 (file)
index 0000000..b52cd26
--- /dev/null
@@ -0,0 +1,154 @@
+This file describes what you must or might want to do to termcap entries
+to make terminals work properly and efficiently with Emacs.  Information
+on likely problems with specific types of terminals appears at the end
+of the file.
+
+*** What you want in a terminal ***
+
+Vital
+1. Easy to compute suitable padding for.
+2. Never ever sends ^S/^Q unless you type them, at least in one mode.
+
+Nice for speed
+1. Supports insert/delete of multiple lines in one command.
+2. Same for multiple characters, though doing them one by
+one is usually fast enough except on emulators running on
+machines with bitmap screens.
+
+Nice for usability
+1. Considerably more than 24 lines.
+2. Meta key (shift-like key that controls the 0200 bit
+in every character you type).
+
+*** New termcap strings ***
+
+Emacs supports certain termcap strings that are not described in the
+4.2 manual but appear to be standard in system V.  The one exception
+is `cS', which I invented.
+
+`AL'    insert several lines.  Takes one parameter, the number of
+        lines to be inserted.  You specify how to send this parameter
+       using a %-construct, just like the cursor positions in the `cm'
+       string.
+
+`DL'    delete several lines.  One parameter.
+
+`IC'    insert several characters.  One parameter.
+
+`DC'    delete several characters.  One parameter.
+
+`rp'    repeat a character.  Takes two parameters, the character
+        to be repeated and the number of times to repeat it.
+       Most likely you will use `%.' for sending the character
+       to be repeated.  Emacs interprets a padding spec with a *
+       as giving the amount of padding per repetition.
+
+       WARNING: Many terminals have a command to repeat the
+       *last character output* N times.  This means that the character
+       will appear N+1 times in a row when the command argument is N.
+       However, the `rp' string's parameter is the total number of
+       times wanted, not one less.  Therefore, such repeat commands
+       may be used in an `rp' string only if you use Emacs's special
+       termcap operator `%a-c\001' to subtract 1 from the repeat count
+       before substituting it into the string.  It is probably safe
+       to use this even though the Unix termcap does not accept it
+       because programs other than Emacs probably won't look for `rp'
+       anyway.
+       
+`cs'    set scroll region.  Takes two parameters, the vertical
+       positions of the first line to include in the scroll region
+       and the last line to include in the scroll region.
+       Both parameters are origin-zero.  The effect of this
+       should be to cause a following insert-line or delete-line
+       not to move lines below the bottom of the scroll region.
+
+       This is not the same convention that Emacs version 16 used.
+       That is because I was led astray by unclear documentation
+       of the meaning of %i in termcap strings.  Since the termcap
+       documentation for `cs' is also unclear, I had to deduce the
+       correct parameter conventions from what would make the VT-100's
+       `cs' string work properly.  From an incorrect assumption about
+       %i, I reached an incorrect conclusion about `cs', but the result
+       worked correctly on the VT100 and ANSII terminals.  In Emacs
+       version 17, both `cs' and %i work correctly.
+
+       The version 16 convention was to pass, for the second parameter,
+       the line number of the first line beyond the end of the
+       scroll region.
+
+`cS'    set scroll region.  Differs from `cs' in taking parameters
+       differently.  There are four parameters:
+       1. Total number of lines on the screen.
+       2. Number of lines above desired scroll region.
+       3. Number of lines below (outside of) desired scroll region.
+       4. Total number of lines on the screen, like #1.
+       This is because an Ambassador needs the parameters like this.
+
+`cr', `do', `le'
+       Emacs will not attempt to use ^M, ^J or ^H for cursor motion
+       unless these capabilities are present and say to use those
+       characters.
+
+`km'    Says the terminal has a Meta key.
+
+Defining these strings is important for getting maximum performance
+from your terminal.
+
+Make sure that the `ti' string sets all modes needed for editing
+in Emacs.  For example, if your terminal has a mode that controls
+wrap at the end of the line, you must decide whether to specify
+the `am' flag in the termcap entry; whichever you decide, the `ti'
+string should contain commands to set the mode that way.
+(Emacs also sends the `vs' string after the `ti' string.
+You can put the mode-setting commands in either one of them.)
+
+*** Specific Terminal Types ***
+
+Watch out for termcap entries for Ann Arbor Ambassadors that
+give too little padding for clear-screen.  7.2 msec per line is right.
+These are the strings whose padding you probably should change:
+    :al=1*\E[L:dl=1*\E[M:cd=7.2*\E[J:cl=7.2*\E[H\E[J:
+I have sometimes seen `\E[2J' at the front of the `ti' string;
+this is a clear-screen, very slow, and it can cause you to get
+Control-s sent by the terminal at startup.  I recommend removing
+the `\E[2J' from the `ti' string.
+The `ti' or `vs' strings also usually need stuff added to them, such as
+    \E[>33;52;54h\E[>30;37;38;39l
+You might want to add the following to the `te' or `ve' strings:
+    \E[>52l\E[>37h
+The following additional capabilities will improve performance:
+    :AL=1*\E[%dL:DL=1*\E[%dM:IC=4\E[%d@:DC=4\E[%dP:rp=1*%.\E[%a-c\001%db:
+If you find that the Meta key does not work, make sure that
+    :km:
+is present in the termcap entry.
+
+Watch out for termcap entries for VT100's that fail to specify
+the `sf' string, or that omit the padding needed for the `sf' and `sr'
+strings (2msec per line affected).  What you need is
+    :sf=2*^J:sr=2*\EM:cs=\E[%i%d;%dr:
+
+The Concept-100 and Concept-108 have many modes that `ti' strings
+often fail to initialize.  If you have problems on one of these
+terminals, that is probably the place to fix them.  These terminals
+can support an `rp' string.
+
+Watch out on HP terminals for problems with standout disappearing on
+part of the mode line.  These problems are due to the absence of
+:sg#0: which some HP terminals need.
+
+The vi55 is said to require `ip=2'.
+
+The Sun console should have these capabilities for good performance.
+          :AL=\E[%dL:DL=\E[%dM:IC=\E[%d@:DC=\E[%dP:
+
+The vt220 needs to be set to vt220 mode, 7 bit, space parity
+in order to work fully with TERM=vt220.
+
+If you are using a LAT terminal concentrator, you need to issue these
+commands to turn off flow control:
+
+    set port flow control disable
+    define port flow control disable
+
+On a PC, with terminal type AT386 or AT386-M, rumor has it that the termcap file 
+that comes with the system has the `xt' capability, but should not have it.