Annotation of src/usr.bin/vim/cmdtab.tab, Revision 1.1
1.1 ! downsj 1: /* $OpenBSD$ */
! 2: /* vi:ts=4:sw=4
! 3: *
! 4: * VIM - Vi IMproved
! 5: *
! 6: * Code Contributions By: Bram Moolenaar mool@plex.nl
! 7: * Tim Thompson twitch!tjt
! 8: * Tony Andrews onecom!wldrdg!tony
! 9: * G. R. (Fred) Walter watmath!watcgl!grwalter
! 10: */
! 11:
! 12: /*
! 13: * |This file is read by mkcmdtab to produce cmdtab.h.
! 14: *
! 15: * The bars are used to recognize file positions. Do not insert/delete them.|
! 16: */
! 17:
! 18: #define RANGE 0x01 /* allow a linespecs */
! 19: #define BANG 0x02 /* allow a ! after the command name */
! 20: #define EXTRA 0x04 /* allow extra args after command name */
! 21: #define XFILE 0x08 /* expand wildcards in extra part */
! 22: #define NOSPC 0x10 /* no spaces allowed in the extra part */
! 23: #define DFLALL 0x20 /* default file range is 1,$ */
! 24: #define NODFL 0x40 /* do not default to the current file name */
! 25: #define NEEDARG 0x80 /* argument required */
! 26: #define TRLBAR 0x100 /* check for trailing vertical bar */
! 27: #define REGSTR 0x200 /* allow "x for register designation */
! 28: #define COUNT 0x400 /* allow count in argument, after command */
! 29: #define NOTRLCOM 0x800 /* no trailing comment allowed */
! 30: #define ZEROR 0x1000 /* zero line number allowed */
! 31: #define USECTRLV 0x2000 /* do not remove CTRL-V from argument */
! 32: #define NOTADR 0x4000 /* number before command is not an address */
! 33: #define EDITCMD 0x8000 /* has "+command" argument */
! 34: #define BUFNAME 0x10000 /* accepts buffer name */
! 35: #define FILES (XFILE + EXTRA) /* multiple extra files allowed */
! 36: #define WORD1 (EXTRA + NOSPC) /* one extra word allowed */
! 37: #define FILE1 (FILES + NOSPC) /* 1 file allowed, defaults to current file */
! 38: #define NAMEDF (FILE1 + NODFL) /* 1 file allowed, defaults to "" */
! 39: #define NAMEDFS (FILES + NODFL) /* multiple files allowed, default is "" */
! 40:
! 41: /*
! 42: * This array maps ex command names to command codes. The order in which
! 43: * command names are listed below is significant -- ambiguous abbreviations
! 44: * are always resolved to be the first possible match (e.g. "r" is taken
! 45: * to mean "read", not "rewind", because "read" comes before "rewind").
! 46: * Not supported commands are included to avoid ambiguities.
! 47: */
! 48: static struct
! 49: {
! 50: char_u *cmd_name; /* name of the command */
! 51: long_u cmd_argt; /* command line arguments permitted/needed/used */
! 52: } cmdnames[] =
! 53: {
! 54: | {(char_u *)"append", BANG+RANGE+TRLBAR}, /* not supported */
! 55: {(char_u *)"all", RANGE+NOTADR+COUNT+TRLBAR},
! 56: {(char_u *)"abbreviate", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 57: {(char_u *)"abclear", TRLBAR},
! 58: {(char_u *)"args", BANG+NAMEDFS+EDITCMD+TRLBAR},
! 59: {(char_u *)"argument", BANG+RANGE+NOTADR+COUNT+EXTRA+EDITCMD+TRLBAR},
! 60: {(char_u *)"ascii", TRLBAR},
! 61: {(char_u *)"autocmd", BANG+EXTRA+NOTRLCOM+USECTRLV},
! 62: {(char_u *)"buffer", RANGE+NOTADR+BUFNAME+COUNT+EXTRA+TRLBAR},
! 63: {(char_u *)"ball", RANGE+NOTADR+COUNT+TRLBAR},
! 64: {(char_u *)"buffers", TRLBAR},
! 65: {(char_u *)"bdelete", BANG+RANGE+BUFNAME+NOTADR+COUNT+EXTRA+TRLBAR},
! 66: {(char_u *)"bunload", BANG+RANGE+BUFNAME+NOTADR+COUNT+EXTRA+TRLBAR},
! 67: {(char_u *)"bmodified", RANGE+NOTADR+COUNT+TRLBAR},
! 68: {(char_u *)"bnext", RANGE+NOTADR+COUNT+TRLBAR},
! 69: {(char_u *)"bNext", RANGE+NOTADR+COUNT+TRLBAR},
! 70: {(char_u *)"bprevious", RANGE+NOTADR+COUNT+TRLBAR},
! 71: {(char_u *)"brewind", RANGE+TRLBAR},
! 72: {(char_u *)"blast", RANGE+TRLBAR},
! 73: {(char_u *)"change", BANG+RANGE+COUNT+TRLBAR}, /* not supported */
! 74: {(char_u *)"cabbrev", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 75: {(char_u *)"cabclear", TRLBAR},
! 76: {(char_u *)"cc", RANGE+NOTADR+COUNT+TRLBAR+BANG},
! 77: {(char_u *)"cd", NAMEDF+TRLBAR},
! 78: {(char_u *)"center", TRLBAR+RANGE+EXTRA},
! 79: {(char_u *)"cfile", TRLBAR+FILE1+BANG},
! 80: {(char_u *)"chdir", NAMEDF+TRLBAR},
! 81: {(char_u *)"checkpath", TRLBAR+BANG},
! 82: {(char_u *)"clist", TRLBAR+BANG},
! 83: {(char_u *)"close", BANG+TRLBAR},
! 84: {(char_u *)"cmap", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 85: {(char_u *)"cmapclear", TRLBAR},
! 86: {(char_u *)"cmenu", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 87: {(char_u *)"cnext", RANGE+NOTADR+COUNT+TRLBAR+BANG},
! 88: {(char_u *)"cNext", RANGE+NOTADR+COUNT+TRLBAR+BANG},
! 89: {(char_u *)"cnoremap", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 90: {(char_u *)"cnoremenu", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 91: {(char_u *)"cnoreabbrev", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 92: {(char_u *)"copy", RANGE+EXTRA+TRLBAR},
! 93: {(char_u *)"cprevious", RANGE+NOTADR+COUNT+TRLBAR+BANG},
! 94: {(char_u *)"cquit", TRLBAR+BANG},
! 95: {(char_u *)"cunmap", EXTRA+TRLBAR+USECTRLV},
! 96: {(char_u *)"cunmenu", EXTRA+TRLBAR+USECTRLV},
! 97: {(char_u *)"cunabbrev", EXTRA+TRLBAR+USECTRLV},
! 98: {(char_u *)"delete", RANGE+REGSTR+COUNT+TRLBAR},
! 99: {(char_u *)"display", EXTRA+NOTRLCOM+TRLBAR},
! 100: {(char_u *)"digraphs", EXTRA+TRLBAR},
! 101: {(char_u *)"djump", BANG+RANGE+DFLALL+EXTRA},
! 102: {(char_u *)"dlist", BANG+RANGE+DFLALL+EXTRA},
! 103: {(char_u *)"doautocmd", EXTRA+TRLBAR},
! 104: {(char_u *)"dsearch", BANG+RANGE+DFLALL+EXTRA},
! 105: {(char_u *)"dsplit", BANG+RANGE+DFLALL+EXTRA+TRLBAR},
! 106: {(char_u *)"edit", BANG+FILE1+EDITCMD+TRLBAR},
! 107: {(char_u *)"ex", BANG+FILE1+EDITCMD+TRLBAR},
! 108: {(char_u *)"exit", RANGE+BANG+FILE1+DFLALL+TRLBAR},
! 109: {(char_u *)"file", BANG+FILE1+TRLBAR},
! 110: {(char_u *)"files", TRLBAR},
! 111: {(char_u *)"fixdel", TRLBAR},
! 112: {(char_u *)"global", RANGE+BANG+EXTRA+DFLALL},
! 113: {(char_u *)"gui", BANG+NAMEDFS+EDITCMD+TRLBAR},
! 114: {(char_u *)"gvim", BANG+NAMEDFS+EDITCMD+TRLBAR},
! 115: {(char_u *)"help", EXTRA+NOTRLCOM},
! 116: {(char_u *)"insert", BANG+RANGE+TRLBAR}, /* not supported */
! 117: {(char_u *)"iabbrev", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 118: {(char_u *)"iabclear", TRLBAR},
! 119: {(char_u *)"ijump", BANG+RANGE+DFLALL+EXTRA},
! 120: {(char_u *)"ilist", BANG+RANGE+DFLALL+EXTRA},
! 121: {(char_u *)"imap", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 122: {(char_u *)"imapclear", TRLBAR},
! 123: {(char_u *)"imenu", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 124: {(char_u *)"inoremap", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 125: {(char_u *)"inoremenu", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 126: {(char_u *)"inoreabbrev", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 127: {(char_u *)"isearch", BANG+RANGE+DFLALL+EXTRA},
! 128: {(char_u *)"isplit", BANG+RANGE+DFLALL+EXTRA+TRLBAR},
! 129: {(char_u *)"iunmap", EXTRA+TRLBAR+USECTRLV},
! 130: {(char_u *)"iunmenu", EXTRA+TRLBAR+USECTRLV},
! 131: {(char_u *)"iunabbrev", EXTRA+TRLBAR+USECTRLV},
! 132: {(char_u *)"join", BANG+RANGE+COUNT+TRLBAR},
! 133: {(char_u *)"jumps", TRLBAR},
! 134: {(char_u *)"k", RANGE+WORD1+TRLBAR},
! 135: {(char_u *)"list", RANGE+COUNT+TRLBAR},
! 136: {(char_u *)"last", EXTRA+BANG+EDITCMD+TRLBAR},
! 137: {(char_u *)"left", TRLBAR+RANGE+EXTRA},
! 138: {(char_u *)"ls", TRLBAR},
! 139: {(char_u *)"move", RANGE+EXTRA+TRLBAR},
! 140: {(char_u *)"mark", RANGE+WORD1+TRLBAR},
! 141: {(char_u *)"marks", EXTRA+TRLBAR},
! 142: {(char_u *)"map", BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 143: {(char_u *)"mapclear", BANG+TRLBAR},
! 144: {(char_u *)"make", NEEDARG+EXTRA+TRLBAR+XFILE},
! 145: {(char_u *)"menu", BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 146: {(char_u *)"mkexrc", BANG+FILE1+TRLBAR},
! 147: {(char_u *)"mkvimrc", BANG+FILE1+TRLBAR},
! 148: {(char_u *)"mfstat", TRLBAR}, /* for debugging */
! 149: {(char_u *)"mode", WORD1+TRLBAR},
! 150: {(char_u *)"next", RANGE+NOTADR+BANG+NAMEDFS+EDITCMD+TRLBAR},
! 151: {(char_u *)"new", BANG+FILE1+RANGE+NOTADR+EDITCMD+TRLBAR},
! 152: {(char_u *)"nmap", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 153: {(char_u *)"nmapclear", TRLBAR},
! 154: {(char_u *)"nmenu", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 155: {(char_u *)"nnoremap", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 156: {(char_u *)"nnoremenu", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 157: {(char_u *)"number", RANGE+COUNT+TRLBAR},
! 158: {(char_u *)"#", RANGE+COUNT+TRLBAR},
! 159: {(char_u *)"noremap", BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 160: {(char_u *)"noremenu", BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 161: {(char_u *)"noreabbrev", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 162: {(char_u *)"normal", BANG+EXTRA+NEEDARG+NOTRLCOM+USECTRLV},
! 163: {(char_u *)"nunmap", EXTRA+TRLBAR+USECTRLV},
! 164: {(char_u *)"nunmenu", EXTRA+TRLBAR+USECTRLV},
! 165: {(char_u *)"Next", EXTRA+RANGE+NOTADR+COUNT+BANG+EDITCMD+TRLBAR},
! 166: {(char_u *)"open", TRLBAR}, /* not supported */
! 167: {(char_u *)"only", BANG+TRLBAR},
! 168: {(char_u *)"print", RANGE+COUNT+TRLBAR},
! 169: {(char_u *)"pop", RANGE+NOTADR+COUNT+TRLBAR+ZEROR},
! 170: {(char_u *)"put", RANGE+BANG+REGSTR+TRLBAR},
! 171: {(char_u *)"preserve", TRLBAR},
! 172: {(char_u *)"previous", EXTRA+RANGE+NOTADR+COUNT+BANG+EDITCMD+TRLBAR},
! 173: {(char_u *)"pwd", TRLBAR},
! 174: {(char_u *)"quit", BANG+TRLBAR},
! 175: {(char_u *)"qall", BANG+TRLBAR},
! 176: {(char_u *)"read", BANG+RANGE+NAMEDF+TRLBAR+ZEROR},
! 177: {(char_u *)"rewind", EXTRA+BANG+EDITCMD+TRLBAR},
! 178: {(char_u *)"recover", BANG+FILE1+TRLBAR},
! 179: {(char_u *)"redo", TRLBAR},
! 180: {(char_u *)"registers", EXTRA+NOTRLCOM+TRLBAR},
! 181: {(char_u *)"resize", TRLBAR+WORD1},
! 182: {(char_u *)"retab", TRLBAR+RANGE+DFLALL+BANG+WORD1},
! 183: {(char_u *)"right", TRLBAR+RANGE+EXTRA},
! 184: {(char_u *)"rviminfo", BANG+FILE1+TRLBAR}, /* only when VIMINFO defined */
! 185: {(char_u *)"substitute", RANGE+EXTRA},
! 186: {(char_u *)"sargument", BANG+RANGE+NOTADR+COUNT+EXTRA+EDITCMD+TRLBAR},
! 187: {(char_u *)"sall", RANGE+NOTADR+COUNT+TRLBAR},
! 188: {(char_u *)"sbuffer", RANGE+NOTADR+BUFNAME+COUNT+EXTRA+TRLBAR},
! 189: {(char_u *)"sball", RANGE+NOTADR+COUNT+TRLBAR},
! 190: {(char_u *)"sbmodified", RANGE+NOTADR+COUNT+TRLBAR},
! 191: {(char_u *)"sbnext", RANGE+NOTADR+COUNT+TRLBAR},
! 192: {(char_u *)"sbNext", RANGE+NOTADR+COUNT+TRLBAR},
! 193: {(char_u *)"sbprevious", RANGE+NOTADR+COUNT+TRLBAR},
! 194: {(char_u *)"sbrewind", TRLBAR},
! 195: {(char_u *)"sblast", TRLBAR},
! 196: {(char_u *)"suspend", TRLBAR+BANG},
! 197: {(char_u *)"set", EXTRA+TRLBAR},
! 198: {(char_u *)"shell", TRLBAR},
! 199: {(char_u *)"sleep", RANGE+COUNT+NOTADR+TRLBAR},
! 200: {(char_u *)"source", BANG+NAMEDF+NEEDARG+TRLBAR},
! 201: {(char_u *)"split", BANG+FILE1+RANGE+NOTADR+EDITCMD+TRLBAR},
! 202: {(char_u *)"snext", RANGE+NOTADR+BANG+NAMEDFS+EDITCMD+TRLBAR},
! 203: {(char_u *)"sNext", EXTRA+RANGE+NOTADR+COUNT+BANG+EDITCMD+TRLBAR},
! 204: {(char_u *)"sprevious", EXTRA+RANGE+NOTADR+COUNT+BANG+EDITCMD+TRLBAR},
! 205: {(char_u *)"srewind", EXTRA+BANG+EDITCMD+TRLBAR},
! 206: {(char_u *)"slast", EXTRA+BANG+EDITCMD+TRLBAR},
! 207: {(char_u *)"stop", TRLBAR+BANG},
! 208: {(char_u *)"stag", RANGE+NOTADR+BANG+WORD1+TRLBAR+ZEROR},
! 209: {(char_u *)"sunhide", RANGE+NOTADR+COUNT+TRLBAR},
! 210: {(char_u *)"sview", NEEDARG+RANGE+BANG+FILE1+EDITCMD+TRLBAR},
! 211: {(char_u *)"swapname", TRLBAR},
! 212: {(char_u *)"t", RANGE+EXTRA+TRLBAR},
! 213: {(char_u *)"tag", RANGE+NOTADR+BANG+WORD1+TRLBAR+ZEROR},
! 214: {(char_u *)"tags", TRLBAR},
! 215: {(char_u *)"undo", TRLBAR},
! 216: {(char_u *)"unabbreviate", EXTRA+TRLBAR+USECTRLV},
! 217: {(char_u *)"unhide", RANGE+NOTADR+COUNT+TRLBAR},
! 218: {(char_u *)"unmap", BANG+EXTRA+TRLBAR+USECTRLV},
! 219: {(char_u *)"unmenu", BANG+EXTRA+TRLBAR+USECTRLV},
! 220: {(char_u *)"vglobal", RANGE+EXTRA+DFLALL},
! 221: {(char_u *)"version", EXTRA+TRLBAR},
! 222: {(char_u *)"visual", RANGE+BANG+FILE1+EDITCMD+TRLBAR},
! 223: {(char_u *)"view", RANGE+BANG+FILE1+EDITCMD+TRLBAR},
! 224: {(char_u *)"vmap", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 225: {(char_u *)"vmapclear", TRLBAR},
! 226: {(char_u *)"vmenu", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 227: {(char_u *)"vnoremap", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 228: {(char_u *)"vnoremenu", EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
! 229: {(char_u *)"vunmap", EXTRA+TRLBAR+USECTRLV},
! 230: {(char_u *)"vunmenu", EXTRA+TRLBAR+USECTRLV},
! 231: {(char_u *)"write", RANGE+BANG+FILE1+DFLALL+TRLBAR},
! 232: {(char_u *)"wnext", RANGE+NOTADR+BANG+FILE1+TRLBAR},
! 233: {(char_u *)"wNext", RANGE+NOTADR+BANG+FILE1+TRLBAR},
! 234: {(char_u *)"wprevious", RANGE+NOTADR+BANG+FILE1+TRLBAR},
! 235: {(char_u *)"winsize", EXTRA+NEEDARG+TRLBAR},
! 236: {(char_u *)"wq", RANGE+BANG+FILE1+DFLALL+TRLBAR},
! 237: {(char_u *)"wall", BANG+TRLBAR},
! 238: {(char_u *)"wqall", BANG+FILE1+DFLALL+TRLBAR},
! 239: {(char_u *)"wviminfo", BANG+FILE1+TRLBAR}, /* only when VIMINFO defined */
! 240: {(char_u *)"xit", RANGE+BANG+FILE1+DFLALL+TRLBAR},
! 241: {(char_u *)"xall", BANG+TRLBAR},
! 242: {(char_u *)"yank", RANGE+REGSTR+COUNT+TRLBAR},
! 243: {(char_u *)"z", RANGE+COUNT+TRLBAR}, /* not supported */
! 244: {(char_u *)"@", RANGE+EXTRA+TRLBAR},
! 245: {(char_u *)"!", RANGE+BANG+NAMEDFS},
! 246: {(char_u *)"<", RANGE+COUNT+TRLBAR},
! 247: {(char_u *)">", RANGE+COUNT+TRLBAR},
! 248: {(char_u *)"=", RANGE+TRLBAR},
! 249: {(char_u *)"&", RANGE+EXTRA},
! 250: {(char_u *)"~", RANGE+EXTRA}
! 251: |
! 252: };
! 253: |