|
|
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 a PC, with terminal type AT386 or AT386-M, rumor has it that the termcap file ! 154: that comes with the system has the `xt' capability, but should not have it.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.