1 /* vi:set ts=8 sts=4 sw=4 noet: 2 * 3 * VIM - Vi IMproved by Bram Moolenaar 4 * 5 * Do ":help uganda" in Vim to read copying and usage conditions. 6 * Do ":help credits" in Vim to see a list of people who contributed. 7 */ 8 9 /* 10 * This file contains the defines for the machine dependent escape sequences 11 * that the editor needs to perform various operations. All of the sequences 12 * here are optional, except "cm" (cursor motion). 13 */ 14 15 #if defined(SASC) && SASC < 658 16 /* 17 * The SAS C compiler has a bug that makes typedefs being forgot in include 18 * files. Has been fixed in version 6.58. 19 */ 20 typedef unsigned char char_u; 21 #endif 22 23 /* 24 * Index of the termcap codes in the term_strings array. 25 */ 26 enum SpecialKey 27 { 28 KS_NAME = 0,// name of this terminal entry 29 KS_CE, // clear to end of line 30 KS_AL, // add new blank line 31 KS_CAL, // add number of blank lines 32 KS_DL, // delete line 33 KS_CDL, // delete number of lines 34 KS_CS, // scroll region 35 KS_CL, // clear screen 36 KS_CD, // clear to end of display 37 KS_UT, // clearing uses current background color 38 KS_DA, // text may be scrolled down from up 39 KS_DB, // text may be scrolled up from down 40 KS_VI, // cursor invisible 41 KS_VE, // cursor visible 42 KS_VS, // cursor very visible (blink) 43 KS_CVS, // cursor normally visible (no blink) 44 KS_CSH, // cursor shape 45 KS_CRC, // request cursor blinking 46 KS_CRS, // request cursor style 47 KS_ME, // normal mode 48 KS_MR, // reverse mode 49 KS_MD, // bold mode 50 KS_SE, // normal mode 51 KS_SO, // standout mode 52 KS_CZH, // italic mode start 53 KS_CZR, // italic mode end 54 KS_UE, // exit underscore (underline) mode 55 KS_US, // underscore (underline) mode 56 KS_UCE, // exit undercurl mode 57 KS_UCS, // undercurl mode 58 KS_STE, // exit strikethrough mode 59 KS_STS, // strikethrough mode 60 KS_MS, // save to move cur in reverse mode 61 KS_CM, // cursor motion 62 KS_SR, // scroll reverse (backward) 63 KS_CRI, // cursor number of chars right 64 KS_VB, // visual bell 65 KS_KS, // put term in "keypad transmit" mode 66 KS_KE, // out of "keypad transmit" mode 67 KS_TI, // put terminal in termcap mode 68 KS_CTI, // put terminal in "raw" mode 69 KS_TE, // end of termcap mode 70 KS_CTE, // end of "raw" mode 71 KS_BC, // backspace character (cursor left) 72 KS_CCS, // cur is relative to scroll region 73 KS_CCO, // number of colors 74 KS_CSF, // set foreground color 75 KS_CSB, // set background color 76 KS_XS, // standout not erased by overwriting (hpterm) 77 KS_XN, // newline glitch 78 KS_MB, // blink mode 79 KS_CAF, // set foreground color (ANSI) 80 KS_CAB, // set background color (ANSI) 81 KS_CAU, // set underline color (ANSI) 82 KS_LE, // cursor left (mostly backspace) 83 KS_ND, // cursor right 84 KS_CIS, // set icon text start 85 KS_CIE, // set icon text end 86 KS_CSC, // set cursor color start 87 KS_CEC, // set cursor color end 88 KS_TS, // set window title start (to status line) 89 KS_FS, // set window title end (from status line) 90 KS_CWP, // set window position in pixels 91 KS_CGP, // get window position 92 KS_CWS, // set window size in characters 93 KS_CRV, // request version string 94 KS_RFG, // request foreground color 95 KS_RBG, // request background color 96 KS_CSI, // start insert mode (bar cursor) 97 KS_CEI, // end insert mode (block cursor) 98 KS_CSR, // start replace mode (underline cursor) 99 KS_CSV, // scroll region vertical 100 KS_OP, // original color pair 101 KS_U7, // request cursor position 102 KS_8F, // set foreground color (RGB) 103 KS_8B, // set background color (RGB) 104 KS_8U, // set underline color (RGB) 105 KS_CBE, // enable bracketed paste mode 106 KS_CBD, // disable bracketed paste mode 107 KS_CPS, // start of bracketed paste 108 KS_CPE, // end of bracketed paste 109 KS_CST, // save window title 110 KS_CRT, // restore window title 111 KS_SSI, // save icon text 112 KS_SRI, // restore icon text 113 KS_FD, // disable focus event tracking 114 KS_FE // enable focus event tracking 115 }; 116 117 #define KS_LAST KS_FE 118 119 /* 120 * the terminal capabilities are stored in this array 121 * IMPORTANT: When making changes, note the following: 122 * - there should be an entry for each code in the builtin termcaps 123 * - there should be an option for each code in option.c 124 * - there should be code in term.c to obtain the value from the termcap 125 */ 126 127 extern char_u *(term_strings[]); // current terminal strings 128 129 /* 130 * strings used for terminal 131 */ 132 #define T_NAME (TERM_STR(KS_NAME)) // terminal name 133 #define T_CE (TERM_STR(KS_CE)) // clear to end of line 134 #define T_AL (TERM_STR(KS_AL)) // add new blank line 135 #define T_CAL (TERM_STR(KS_CAL)) // add number of blank lines 136 #define T_DL (TERM_STR(KS_DL)) // delete line 137 #define T_CDL (TERM_STR(KS_CDL)) // delete number of lines 138 #define T_CS (TERM_STR(KS_CS)) // scroll region 139 #define T_CSV (TERM_STR(KS_CSV)) // scroll region vertical 140 #define T_CL (TERM_STR(KS_CL)) // clear screen 141 #define T_CD (TERM_STR(KS_CD)) // clear to end of display 142 #define T_UT (TERM_STR(KS_UT)) // clearing uses background color 143 #define T_DA (TERM_STR(KS_DA)) // text may be scrolled down from up 144 #define T_DB (TERM_STR(KS_DB)) // text may be scrolled up from down 145 #define T_VI (TERM_STR(KS_VI)) // cursor invisible 146 #define T_VE (TERM_STR(KS_VE)) // cursor visible 147 #define T_VS (TERM_STR(KS_VS)) // cursor very visible (blink) 148 #define T_CVS (TERM_STR(KS_CVS)) // cursor normally visible (no blink) 149 #define T_CSH (TERM_STR(KS_CSH)) // cursor shape 150 #define T_CRC (TERM_STR(KS_CRC)) // request cursor blinking 151 #define T_CRS (TERM_STR(KS_CRS)) // request cursor style 152 #define T_ME (TERM_STR(KS_ME)) // normal mode 153 #define T_MR (TERM_STR(KS_MR)) // reverse mode 154 #define T_MD (TERM_STR(KS_MD)) // bold mode 155 #define T_SE (TERM_STR(KS_SE)) // normal mode 156 #define T_SO (TERM_STR(KS_SO)) // standout mode 157 #define T_CZH (TERM_STR(KS_CZH)) // italic mode start 158 #define T_CZR (TERM_STR(KS_CZR)) // italic mode end 159 #define T_UE (TERM_STR(KS_UE)) // exit underscore (underline) mode 160 #define T_US (TERM_STR(KS_US)) // underscore (underline) mode 161 #define T_UCE (TERM_STR(KS_UCE)) // exit undercurl mode 162 #define T_UCS (TERM_STR(KS_UCS)) // undercurl mode 163 #define T_STE (TERM_STR(KS_STE)) // exit strikethrough mode 164 #define T_STS (TERM_STR(KS_STS)) // strikethrough mode 165 #define T_MS (TERM_STR(KS_MS)) // save to move cur in reverse mode 166 #define T_CM (TERM_STR(KS_CM)) // cursor motion 167 #define T_SR (TERM_STR(KS_SR)) // scroll reverse (backward) 168 #define T_CRI (TERM_STR(KS_CRI)) // cursor number of chars right 169 #define T_VB (TERM_STR(KS_VB)) // visual bell 170 #define T_KS (TERM_STR(KS_KS)) // put term in "keypad transmit" mode 171 #define T_KE (TERM_STR(KS_KE)) // out of "keypad transmit" mode 172 #define T_TI (TERM_STR(KS_TI)) // put terminal in termcap mode 173 #define T_CTI (TERM_STR(KS_CTI)) // put terminal in "raw" mode 174 #define T_TE (TERM_STR(KS_TE)) // end of termcap mode 175 #define T_CTE (TERM_STR(KS_CTE)) // end of "raw" mode 176 #define T_BC (TERM_STR(KS_BC)) // backspace character 177 #define T_CCS (TERM_STR(KS_CCS)) // cur is relative to scroll region 178 #define T_CCO (TERM_STR(KS_CCO)) // number of colors 179 #define T_CSF (TERM_STR(KS_CSF)) // set foreground color 180 #define T_CSB (TERM_STR(KS_CSB)) // set background color 181 #define T_XS (TERM_STR(KS_XS)) // standout not erased by overwriting 182 #define T_XN (TERM_STR(KS_XN)) // newline glitch 183 #define T_MB (TERM_STR(KS_MB)) // blink mode 184 #define T_CAF (TERM_STR(KS_CAF)) // set foreground color (ANSI) 185 #define T_CAB (TERM_STR(KS_CAB)) // set background color (ANSI) 186 #define T_CAU (TERM_STR(KS_CAU)) // set underline color (ANSI) 187 #define T_LE (TERM_STR(KS_LE)) // cursor left 188 #define T_ND (TERM_STR(KS_ND)) // cursor right 189 #define T_CIS (TERM_STR(KS_CIS)) // set icon text start 190 #define T_CIE (TERM_STR(KS_CIE)) // set icon text end 191 #define T_TS (TERM_STR(KS_TS)) // set window title start 192 #define T_FS (TERM_STR(KS_FS)) // set window title end 193 #define T_CSC (TERM_STR(KS_CSC)) // set cursor color start 194 #define T_CEC (TERM_STR(KS_CEC)) // set cursor color end 195 #define T_CWP (TERM_STR(KS_CWP)) // set window position 196 #define T_CGP (TERM_STR(KS_CGP)) // get window position 197 #define T_CWS (TERM_STR(KS_CWS)) // window size 198 #define T_CSI (TERM_STR(KS_CSI)) // start insert mode 199 #define T_CEI (TERM_STR(KS_CEI)) // end insert mode 200 #define T_CSR (TERM_STR(KS_CSR)) // start replace mode 201 #define T_CRV (TERM_STR(KS_CRV)) // request version string 202 #define T_RFG (TERM_STR(KS_RFG)) // request foreground RGB 203 #define T_RBG (TERM_STR(KS_RBG)) // request background RGB 204 #define T_OP (TERM_STR(KS_OP)) // original color pair 205 #define T_U7 (TERM_STR(KS_U7)) // request cursor position 206 #define T_8F (TERM_STR(KS_8F)) // set foreground color (RGB) 207 #define T_8B (TERM_STR(KS_8B)) // set background color (RGB) 208 #define T_8U (TERM_STR(KS_8U)) // set underline color (RGB) 209 #define T_BE (TERM_STR(KS_CBE)) // enable bracketed paste mode 210 #define T_BD (TERM_STR(KS_CBD)) // disable bracketed paste mode 211 #define T_PS (TERM_STR(KS_CPS)) // start of bracketed paste 212 #define T_PE (TERM_STR(KS_CPE)) // end of bracketed paste 213 #define T_CST (TERM_STR(KS_CST)) // save window title 214 #define T_CRT (TERM_STR(KS_CRT)) // restore window title 215 #define T_SSI (TERM_STR(KS_SSI)) // save icon text 216 #define T_SRI (TERM_STR(KS_SRI)) // restore icon text 217 #define T_FD (TERM_STR(KS_FD)) // disable focus event tracking 218 #define T_FE (TERM_STR(KS_FE)) // enable focus event tracking 219 220 typedef enum { 221 TMODE_COOK, // terminal mode for external cmds and Ex mode 222 TMODE_SLEEP, // terminal mode for sleeping (cooked but no echo) 223 TMODE_RAW, // terminal mode for Normal and Insert mode 224 TMODE_UNKNOWN // after executing a shell 225 } tmode_T; 226