diff options
| author | Dave Love | 1999-10-03 12:39:42 +0000 |
|---|---|---|
| committer | Dave Love | 1999-10-03 12:39:42 +0000 |
| commit | a933dad155af89ff3e97634c07aa09f9df0fb2b3 (patch) | |
| tree | 43be918d0d87dc41c6051df657247209b1736c82 /etc/TERMS | |
| parent | a7bfd66f45c12ca1b8c158b44c57dc56de13654c (diff) | |
| download | emacs-a933dad155af89ff3e97634c07aa09f9df0fb2b3.tar.gz emacs-a933dad155af89ff3e97634c07aa09f9df0fb2b3.zip | |
#
Diffstat (limited to 'etc/TERMS')
| -rw-r--r-- | etc/TERMS | 229 |
1 files changed, 229 insertions, 0 deletions
diff --git a/etc/TERMS b/etc/TERMS new file mode 100644 index 00000000000..0245fe2c2db --- /dev/null +++ b/etc/TERMS | |||
| @@ -0,0 +1,229 @@ | |||
| 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, | ||