0
+ − 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,