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