Annotation of GNUtools/emacs/etc/TERMS, revision 1.1

1.1     ! root        1: This file describes what you must or might want to do to termcap entries
        !             2: to make terminals work properly and efficiently with Emacs.  Information
        !             3: on likely problems with specific types of terminals appears at the end
        !             4: of the file.
        !             5: 
        !             6: *** What you want in a terminal ***
        !             7: 
        !             8: Vital
        !             9: 1. Easy to compute suitable padding for.
        !            10: 2. Never ever sends ^S/^Q unless you type them, at least in one mode.
        !            11: 
        !            12: Nice for speed
        !            13: 1. Supports insert/delete of multiple lines in one command.
        !            14: 2. Same for multiple characters, though doing them one by
        !            15: one is usually fast enough except on emulators running on
        !            16: machines with bitmap screens.
        !            17: 
        !            18: Nice for usability
        !            19: 1. Considerably more than 24 lines.
        !            20: 2. Meta key (shift-like key that controls the 0200 bit
        !            21: in every character you type).
        !            22: 
        !            23: *** New termcap strings ***
        !            24: 
        !            25: Emacs supports certain termcap strings that are not described in the
        !            26: 4.2 manual but appear to be standard in system V.  The one exception
        !            27: is `cS', which I invented.
        !            28: 
        !            29: `AL'    insert several lines.  Takes one parameter, the number of
        !            30:         lines to be inserted.  You specify how to send this parameter
        !            31:        using a %-construct, just like the cursor positions in the `cm'
        !            32:        string.
        !            33: 
        !            34: `DL'    delete several lines.  One parameter.
        !            35: 
        !            36: `IC'    insert several characters.  One parameter.
        !            37: 
        !            38: `DC'    delete several characters.  One parameter.
        !            39: 
        !            40: `rp'    repeat a character.  Takes two parameters, the character
        !            41:         to be repeated and the number of times to repeat it.
        !            42:        Most likely you will use `%.' for sending the character
        !            43:        to be repeated.  Emacs interprets a padding spec with a *
        !            44:        as giving the amount of padding per repetition.
        !            45: 
        !            46:        WARNING: Many terminals have a command to repeat the
        !            47:        *last character output* N times.  This means that the character
        !            48:        will appear N+1 times in a row when the command argument is N.
        !            49:        However, the `rp' string's parameter is the total number of
        !            50:        times wanted, not one less.  Therefore, such repeat commands
        !            51:        may be used in an `rp' string only if you use Emacs's special
        !            52:        termcap operator `%a-c\001' to subtract 1 from the repeat count
        !            53:        before substituting it into the string.  It is probably safe
        !            54:        to use this even though the Unix termcap does not accept it
        !            55:        because programs other than Emacs probably won't look for `rp'
        !            56:        anyway.
        !            57:        
        !            58: `cs'    set scroll region.  Takes two parameters, the vertical
        !            59:        positions of the first line to include in the scroll region
        !            60:        and the last line to include in the scroll region.
        !            61:        Both parameters are origin-zero.  The effect of this
        !            62:        should be to cause a following insert-line or delete-line
        !            63:        not to move lines below the bottom of the scroll region.
        !            64: 
        !            65:        This is not the same convention that Emacs version 16 used.
        !            66:        That is because I was led astray by unclear documentation
        !            67:        of the meaning of %i in termcap strings.  Since the termcap
        !            68:        documentation for `cs' is also unclear, I had to deduce the
        !            69:        correct parameter conventions from what would make the VT-100's
        !            70:        `cs' string work properly.  From an incorrect assumption about
        !            71:        %i, I reached an incorrect conclusion about `cs', but the result
        !            72:        worked correctly on the VT100 and ANSII terminals.  In Emacs
        !            73:        version 17, both `cs' and %i work correctly.
        !            74: 
        !            75:        The version 16 convention was to pass, for the second parameter,
        !            76:        the line number of the first line beyond the end of the
        !            77:        scroll region.
        !            78: 
        !            79: `cS'    set scroll region.  Differs from `cs' in taking parameters
        !            80:        differently.  There are four parameters:
        !            81:        1. Total number of lines on the screen.
        !            82:        2. Number of lines above desired scroll region.
        !            83:        3. Number of lines below (outside of) desired scroll region.
        !            84:        4. Total number of lines on the screen, like #1.
        !            85:        This is because an Ambassador needs the parameters like this.
        !            86: 
        !            87: `cr', `do', `le'
        !            88:        Emacs will not attempt to use ^M, ^J or ^H for cursor motion
        !            89:        unless these capabilities are present and say to use those
        !            90:        characters.
        !            91: 
        !            92: `km'    Says the terminal has a Meta key.
        !            93: 
        !            94: Defining these strings is important for getting maximum performance
        !            95: from your terminal.
        !            96: 
        !            97: Make sure that the `ti' string sets all modes needed for editing
        !            98: in Emacs.  For example, if your terminal has a mode that controls
        !            99: wrap at the end of the line, you must decide whether to specify
        !           100: the `am' flag in the termcap entry; whichever you decide, the `ti'
        !           101: string should contain commands to set the mode that way.
        !           102: (Emacs also sends the `vs' string after the `ti' string.
        !           103: You can put the mode-setting commands in either one of them.)
        !           104: 
        !           105: *** Specific Terminal Types ***
        !           106: 
        !           107: Watch out for termcap entries for Ann Arbor Ambassadors that
        !           108: give too little padding for clear-screen.  7.2 msec per line is right.
        !           109: These are the strings whose padding you probably should change:
        !           110:     :al=1*\E[L:dl=1*\E[M:cd=7.2*\E[J:cl=7.2*\E[H\E[J:
        !           111: I have sometimes seen `\E[2J' at the front of the `ti' string;
        !           112: this is a clear-screen, very slow, and it can cause you to get
        !           113: Control-s sent by the terminal at startup.  I recommend removing
        !           114: the `\E[2J' from the `ti' string.
        !           115: The `ti' or `vs' strings also usually need stuff added to them, such as
        !           116:     \E[>33;52;54h\E[>30;37;38;39l
        !           117: You might want to add the following to the `te' or `ve' strings:
        !           118:     \E[>52l\E[>37h
        !           119: The following additional capabilities will improve performance:
        !           120:     :AL=1*\E[%dL:DL=1*\E[%dM:IC=4\E[%d@:DC=4\E[%dP:rp=1*%.\E[%a-c\001%db:
        !           121: If you find that the Meta key does not work, make sure that
        !           122:     :km:
        !           123: is present in the termcap entry.
        !           124: 
        !           125: Watch out for termcap entries for VT100's that fail to specify
        !           126: the `sf' string, or that omit the padding needed for the `sf' and `sr'
        !           127: strings (2msec per line affected).  What you need is
        !           128:     :sf=2*^J:sr=2*\EM:cs=\E[%i%d;%dr:
        !           129: 
        !           130: The Concept-100 and Concept-108 have many modes that `ti' strings
        !           131: often fail to initialize.  If you have problems on one of these
        !           132: terminals, that is probably the place to fix them.  These terminals
        !           133: can support an `rp' string.
        !           134: 
        !           135: Watch out on HP terminals for problems with standout disappearing on
        !           136: part of the mode line.  These problems are due to the absence of
        !           137: :sg#0: which some HP terminals need.
        !           138: 
        !           139: The vi55 is said to require `ip=2'.
        !           140: 
        !           141: The Sun console should have these capabilities for good performance.
        !           142:           :AL=\E[%dL:DL=\E[%dM:IC=\E[%d@:DC=\E[%dP:
        !           143: 
        !           144: The vt220 needs to be set to vt220 mode, 7 bit, space parity
        !           145: in order to work fully with TERM=vt220.
        !           146: 
        !           147: If you are using a LAT terminal concentrator, you need to issue these
        !           148: commands to turn off flow control:
        !           149: 
        !           150:     set port flow control disable
        !           151:     define port flow control disable
        !           152: 
        !           153: On System V, in the terminfo database, various terminals may have
        !           154: the `xt' flag that should not have it.  `xt' should be present only
        !           155: for the Teleray 1061 or equivalent terminal.
        !           156: 
        !           157: In particular, System V for the 386 often has `xt' for terminal type
        !           158: AT386 or AT386-M, which is used for the console.  You should delete
        !           159: this flag.  Here is how:
        !           160: 
        !           161: You can get a copy of the terminfo "source" for at386 using the
        !           162: command: `infocmp at386 >at386.tic'.  Edit the file at386.tic and remove
        !           163: the `xt' flag.  Then compile the new entry with: `tic at386.tic'.
        !           164: 
        !           165: It is also reported that these terminal types sometimes have the wrong
        !           166: reverse-scroll string.  It should be \E[T, but sometimes is given as \E[S.
        !           167: 
        !           168: Here is what watserv1!maytag!focsys!larry recommends for these terminals:
        !           169: 
        !           170: # This copy of the terminfo description has been fixed.
        !           171: # The suggestions came from a number of usenet postings.
        !           172: #
        !           173: # Intel AT/386 for color card with monochrome display
        !           174: #
        !           175: AT386-M|at386-m|386AT-M|386at-m|at/386 console,
        !           176:        am, bw, eo, xon,
        !           177:        cols#80, lines#25,
        !           178:        acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
        !           179:        bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
        !           180:        clear=\E[2J\E[H,
        !           181:        cr=\r, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB,
        !           182:        cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
        !           183:        cup=\E[%i%p1%02d;%p2%02dH, cuu=\E[%p1%dA, cuu1=\E[A,
        !           184:        dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[1M,
        !           185:        ech=\E[%p1%dX,ed=\E[J, el=\E[K, el1=\E[1K\E[X, flash=^G, home=\E[H,
        !           186:        hpa=\E[%i%p1%dG, ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L,
        !           187:        ind=\E[S, indn=\E[%p1%dS, invis=\E[9m,
        !           188:        is2=\E[0;10;38m, kbs=\b, kcbt=^], kclr=\E[2J,
        !           189:        kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
        !           190:        kdch1=\E[P, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf11=\EOZ,
        !           191:        kf12=\EOA, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT,
        !           192:        kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H,
        !           193:        kich1=\E[@, knp=\E[U, kpp=\E[V, krmir=\E0, rev=\E[7m, ri=\E[T,
        !           194:        rin=\E[%p1%dT, rmacs=\E[10m, rmso=\E[m, rmul=\E[m,
        !           195:        sgr=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p9%t;12%;%?%p7%t;9%;m,
        !           196:        sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m,
        !           197: 
        !           198: #
        !           199: # AT&T 386 color console 
        !           200: #
        !           201: AT386|at386|386AT|386at|at/386 console,
        !           202:        colors#8, ncv#3, pairs#64,
        !           203:        is2=\E[0;10;39m,
        !           204:        op=\E[0m, 
        !           205:        setb=\E[%?%p1%{0}%=%t40m
        !           206:                 %e%p1%{1}%=%t44m
        !           207:                 %e%p1%{2}%=%t42m
        !           208:                 %e%p1%{3}%=%t46m
        !           209:                 %e%p1%{4}%=%t41m
        !           210:                 %e%p1%{5}%=%t45m
        !           211:                 %e%p1%{6}%=%t43m
        !           212:                 %e%p1%{7}%=%t47m%;,
        !           213:        setf=\E[%?%p1%{0}%=%t30m
        !           214:                 %e%p1%{1}%=%t34m
        !           215:                 %e%p1%{2}%=%t32m
        !           216:                 %e%p1%{3}%=%t36m
        !           217:                 %e%p1%{4}%=%t31m
        !           218:                 %e%p1%{5}%=%t35m
        !           219:                 %e%p1%{6}%=%t33m
        !           220:                 %e%p1%{6}%=%t33m
        !           221:                 %e%p1%{7}%=%t37m%;,
        !           222:        use=at386-m,
        !           223: #
        !           224: # Color console version that supports underline but maps blue
        !           225: # foreground color to cyan.
        !           226: #
        !           227: AT386-UL|at386-ul|386AT-UL|386at-ul|at/386 console,
        !           228:        is2=\E[0;10;38m,
        !           229:        use=at386,

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.