ex_cmds.lua (83592B)
1 local bit = require 'bit' 2 3 local M = {} 4 5 -- Description of the values below is contained in ex_cmds_defs.h file. 6 -- "EX_" prefix is omitted. 7 local RANGE = 0x001 8 local BANG = 0x002 9 local EXTRA = 0x004 10 local XFILE = 0x008 11 local NOSPC = 0x010 12 local DFLALL = 0x020 13 local WHOLEFOLD = 0x040 14 local NEEDARG = 0x080 15 local TRLBAR = 0x100 16 local REGSTR = 0x200 17 local COUNT = 0x400 18 local NOTRLCOM = 0x800 19 local ZEROR = 0x1000 20 local CTRLV = 0x2000 21 local CMDARG = 0x4000 22 local BUFNAME = 0x8000 23 local BUFUNL = 0x10000 24 local ARGOPT = 0x20000 25 local SBOXOK = 0x40000 26 local CMDWIN = 0x80000 27 local MODIFY = 0x100000 28 local FLAGS = 0x200000 29 local LOCK_OK = 0x1000000 30 local PREVIEW = 0x8000000 31 local FILES = bit.bor(XFILE, EXTRA) 32 local WORD1 = bit.bor(EXTRA, NOSPC) 33 local FILE1 = bit.bor(FILES, NOSPC) 34 35 M.flags = { 36 RANGE = RANGE, 37 DFLALL = DFLALL, 38 PREVIEW = PREVIEW, 39 } 40 41 -- The following table is described in ex_cmds_defs.h file. 42 M.cmds = { 43 { 44 command = 'append', 45 flags = bit.bor(BANG, RANGE, ZEROR, TRLBAR, CMDWIN, LOCK_OK, MODIFY), 46 addr_type = 'ADDR_LINES', 47 func = 'ex_append', 48 }, 49 { 50 command = 'abbreviate', 51 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 52 addr_type = 'ADDR_NONE', 53 func = 'ex_abbreviate', 54 }, 55 { 56 command = 'abclear', 57 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 58 addr_type = 'ADDR_NONE', 59 func = 'ex_abclear', 60 }, 61 { 62 command = 'aboveleft', 63 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM), 64 addr_type = 'ADDR_NONE', 65 func = 'ex_wrongmodifier', 66 }, 67 { 68 command = 'all', 69 flags = bit.bor(BANG, RANGE, COUNT, TRLBAR), 70 addr_type = 'ADDR_OTHER', 71 func = 'ex_all', 72 }, 73 { 74 command = 'amenu', 75 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 76 addr_type = 'ADDR_OTHER', 77 func = 'ex_menu', 78 }, 79 { 80 command = 'anoremenu', 81 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 82 addr_type = 'ADDR_OTHER', 83 func = 'ex_menu', 84 }, 85 { 86 command = 'args', 87 flags = bit.bor(BANG, FILES, CMDARG, ARGOPT, TRLBAR), 88 addr_type = 'ADDR_NONE', 89 func = 'ex_args', 90 }, 91 { 92 command = 'argadd', 93 flags = bit.bor(BANG, RANGE, ZEROR, FILES, TRLBAR), 94 addr_type = 'ADDR_ARGUMENTS', 95 func = 'ex_argadd', 96 }, 97 { 98 command = 'argdelete', 99 flags = bit.bor(BANG, RANGE, FILES, TRLBAR), 100 addr_type = 'ADDR_ARGUMENTS', 101 func = 'ex_argdelete', 102 }, 103 { 104 command = 'argdo', 105 flags = bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, DFLALL), 106 addr_type = 'ADDR_ARGUMENTS', 107 func = 'ex_listdo', 108 }, 109 { 110 command = 'argdedupe', 111 flags = TRLBAR, 112 addr_type = 'ADDR_NONE', 113 func = 'ex_argdedupe', 114 }, 115 { 116 command = 'argedit', 117 flags = bit.bor(BANG, NEEDARG, RANGE, ZEROR, FILES, CMDARG, ARGOPT, TRLBAR), 118 addr_type = 'ADDR_ARGUMENTS', 119 func = 'ex_argedit', 120 }, 121 { 122 command = 'argglobal', 123 flags = bit.bor(BANG, FILES, CMDARG, ARGOPT, TRLBAR), 124 addr_type = 'ADDR_NONE', 125 func = 'ex_args', 126 }, 127 { 128 command = 'arglocal', 129 flags = bit.bor(BANG, FILES, CMDARG, ARGOPT, TRLBAR), 130 addr_type = 'ADDR_NONE', 131 func = 'ex_args', 132 }, 133 { 134 command = 'argument', 135 flags = bit.bor(BANG, RANGE, COUNT, EXTRA, CMDARG, ARGOPT, TRLBAR), 136 addr_type = 'ADDR_ARGUMENTS', 137 func = 'ex_argument', 138 }, 139 { 140 command = 'ascii', 141 flags = bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 142 addr_type = 'ADDR_NONE', 143 func = 'do_ascii', 144 }, 145 { 146 command = 'autocmd', 147 flags = bit.bor(BANG, EXTRA, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 148 addr_type = 'ADDR_NONE', 149 func = 'ex_autocmd', 150 }, 151 { 152 command = 'augroup', 153 flags = bit.bor(BANG, WORD1, TRLBAR, CMDWIN, LOCK_OK), 154 addr_type = 'ADDR_NONE', 155 func = 'ex_autocmd', 156 }, 157 { 158 command = 'aunmenu', 159 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 160 addr_type = 'ADDR_NONE', 161 func = 'ex_menu', 162 }, 163 { 164 command = 'buffer', 165 flags = bit.bor(BANG, RANGE, BUFNAME, BUFUNL, COUNT, EXTRA, CMDARG, TRLBAR), 166 addr_type = 'ADDR_BUFFERS', 167 func = 'ex_buffer', 168 }, 169 { 170 command = 'bNext', 171 flags = bit.bor(BANG, RANGE, COUNT, CMDARG, TRLBAR), 172 addr_type = 'ADDR_OTHER', 173 func = 'ex_bprevious', 174 }, 175 { 176 command = 'ball', 177 flags = bit.bor(RANGE, COUNT, TRLBAR), 178 addr_type = 'ADDR_OTHER', 179 func = 'ex_buffer_all', 180 }, 181 { 182 command = 'badd', 183 flags = bit.bor(NEEDARG, FILE1, CMDARG, TRLBAR, CMDWIN, LOCK_OK), 184 addr_type = 'ADDR_NONE', 185 func = 'ex_edit', 186 }, 187 { 188 command = 'balt', 189 flags = bit.bor(NEEDARG, FILE1, CMDARG, TRLBAR, CMDWIN, LOCK_OK), 190 addr_type = 'ADDR_NONE', 191 func = 'ex_edit', 192 }, 193 { 194 command = 'bdelete', 195 flags = bit.bor(BANG, RANGE, BUFNAME, COUNT, EXTRA, TRLBAR), 196 addr_type = 'ADDR_BUFFERS', 197 func = 'ex_bunload', 198 }, 199 { 200 command = 'belowright', 201 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM), 202 addr_type = 'ADDR_NONE', 203 func = 'ex_wrongmodifier', 204 }, 205 { 206 command = 'bfirst', 207 flags = bit.bor(BANG, RANGE, CMDARG, TRLBAR), 208 addr_type = 'ADDR_OTHER', 209 func = 'ex_brewind', 210 }, 211 { 212 command = 'blast', 213 flags = bit.bor(BANG, RANGE, CMDARG, TRLBAR), 214 addr_type = 'ADDR_OTHER', 215 func = 'ex_blast', 216 }, 217 { 218 command = 'bmodified', 219 flags = bit.bor(BANG, RANGE, COUNT, CMDARG, TRLBAR), 220 addr_type = 'ADDR_OTHER', 221 func = 'ex_bmodified', 222 }, 223 { 224 command = 'bnext', 225 flags = bit.bor(BANG, RANGE, COUNT, CMDARG, TRLBAR), 226 addr_type = 'ADDR_OTHER', 227 func = 'ex_bnext', 228 }, 229 { 230 command = 'botright', 231 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM), 232 addr_type = 'ADDR_NONE', 233 func = 'ex_wrongmodifier', 234 }, 235 { 236 command = 'bprevious', 237 flags = bit.bor(BANG, RANGE, COUNT, CMDARG, TRLBAR), 238 addr_type = 'ADDR_OTHER', 239 func = 'ex_bprevious', 240 }, 241 { 242 command = 'brewind', 243 flags = bit.bor(BANG, RANGE, CMDARG, TRLBAR), 244 addr_type = 'ADDR_OTHER', 245 func = 'ex_brewind', 246 }, 247 { 248 command = 'break', 249 flags = bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 250 addr_type = 'ADDR_NONE', 251 func = 'ex_break', 252 }, 253 { 254 command = 'breakadd', 255 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 256 addr_type = 'ADDR_NONE', 257 func = 'ex_breakadd', 258 }, 259 { 260 command = 'breakdel', 261 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 262 addr_type = 'ADDR_NONE', 263 func = 'ex_breakdel', 264 }, 265 { 266 command = 'breaklist', 267 flags = bit.bor(TRLBAR, CMDWIN, LOCK_OK), 268 addr_type = 'ADDR_NONE', 269 func = 'ex_breaklist', 270 }, 271 { 272 command = 'browse', 273 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM, CMDWIN, LOCK_OK), 274 addr_type = 'ADDR_NONE', 275 func = 'ex_wrongmodifier', 276 }, 277 { 278 command = 'buffers', 279 flags = bit.bor(BANG, EXTRA, TRLBAR, CMDWIN, LOCK_OK), 280 addr_type = 'ADDR_NONE', 281 func = 'buflist_list', 282 }, 283 { 284 command = 'bufdo', 285 flags = bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, DFLALL), 286 addr_type = 'ADDR_BUFFERS', 287 func = 'ex_listdo', 288 }, 289 { 290 command = 'bunload', 291 flags = bit.bor(BANG, RANGE, BUFNAME, COUNT, EXTRA, TRLBAR), 292 addr_type = 'ADDR_LOADED_BUFFERS', 293 func = 'ex_bunload', 294 }, 295 { 296 command = 'bwipeout', 297 flags = bit.bor(BANG, RANGE, BUFNAME, BUFUNL, COUNT, EXTRA, TRLBAR), 298 addr_type = 'ADDR_BUFFERS', 299 func = 'ex_bunload', 300 }, 301 { 302 command = 'change', 303 flags = bit.bor(BANG, WHOLEFOLD, RANGE, COUNT, TRLBAR, CMDWIN, LOCK_OK, MODIFY), 304 addr_type = 'ADDR_LINES', 305 func = 'ex_change', 306 }, 307 { 308 command = 'cNext', 309 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 310 addr_type = 'ADDR_UNSIGNED', 311 func = 'ex_cnext', 312 }, 313 { 314 command = 'cNfile', 315 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 316 addr_type = 'ADDR_UNSIGNED', 317 func = 'ex_cnext', 318 }, 319 { 320 command = 'cabbrev', 321 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 322 addr_type = 'ADDR_NONE', 323 func = 'ex_abbreviate', 324 }, 325 { 326 command = 'cabclear', 327 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 328 addr_type = 'ADDR_NONE', 329 func = 'ex_abclear', 330 }, 331 { 332 command = 'cabove', 333 flags = bit.bor(RANGE, COUNT, TRLBAR), 334 addr_type = 'ADDR_UNSIGNED', 335 func = 'ex_cbelow', 336 }, 337 { 338 command = 'caddbuffer', 339 flags = bit.bor(RANGE, WORD1, TRLBAR), 340 addr_type = 'ADDR_LINES', 341 func = 'ex_cbuffer', 342 }, 343 { 344 command = 'caddexpr', 345 flags = bit.bor(NEEDARG, WORD1, NOTRLCOM), 346 addr_type = 'ADDR_NONE', 347 func = 'ex_cexpr', 348 }, 349 { 350 command = 'caddfile', 351 flags = bit.bor(TRLBAR, FILE1), 352 addr_type = 'ADDR_NONE', 353 func = 'ex_cfile', 354 }, 355 { 356 command = 'cafter', 357 flags = bit.bor(RANGE, COUNT, TRLBAR), 358 addr_type = 'ADDR_UNSIGNED', 359 func = 'ex_cbelow', 360 }, 361 { 362 command = 'call', 363 flags = bit.bor(RANGE, NEEDARG, EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 364 addr_type = 'ADDR_LINES', 365 func = 'ex_call', 366 }, 367 { 368 command = 'catch', 369 flags = bit.bor(EXTRA, SBOXOK, CMDWIN, LOCK_OK), 370 addr_type = 'ADDR_NONE', 371 func = 'ex_catch', 372 }, 373 { 374 command = 'cbuffer', 375 flags = bit.bor(BANG, RANGE, WORD1, TRLBAR), 376 addr_type = 'ADDR_LINES', 377 func = 'ex_cbuffer', 378 }, 379 { 380 command = 'cbefore', 381 flags = bit.bor(RANGE, COUNT, TRLBAR), 382 addr_type = 'ADDR_UNSIGNED', 383 func = 'ex_cbelow', 384 }, 385 { 386 command = 'cbelow', 387 flags = bit.bor(RANGE, COUNT, TRLBAR), 388 addr_type = 'ADDR_UNSIGNED', 389 func = 'ex_cbelow', 390 }, 391 { 392 command = 'cbottom', 393 flags = bit.bor(TRLBAR), 394 addr_type = 'ADDR_NONE', 395 func = 'ex_cbottom', 396 }, 397 { 398 command = 'cc', 399 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 400 addr_type = 'ADDR_QUICKFIX', 401 func = 'ex_cc', 402 }, 403 { 404 command = 'cclose', 405 flags = bit.bor(TRLBAR), 406 addr_type = 'ADDR_NONE', 407 func = 'ex_cclose', 408 }, 409 { 410 command = 'cd', 411 flags = bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), 412 addr_type = 'ADDR_NONE', 413 func = 'ex_cd', 414 }, 415 { 416 command = 'cdo', 417 flags = bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, DFLALL), 418 addr_type = 'ADDR_QUICKFIX_VALID', 419 func = 'ex_listdo', 420 }, 421 { 422 command = 'center', 423 flags = bit.bor(TRLBAR, RANGE, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK, MODIFY), 424 addr_type = 'ADDR_LINES', 425 func = 'ex_align', 426 }, 427 { 428 command = 'cexpr', 429 flags = bit.bor(NEEDARG, WORD1, NOTRLCOM, BANG), 430 addr_type = 'ADDR_NONE', 431 func = 'ex_cexpr', 432 }, 433 { 434 command = 'cfile', 435 flags = bit.bor(TRLBAR, FILE1, BANG), 436 addr_type = 'ADDR_NONE', 437 func = 'ex_cfile', 438 }, 439 -- Even though 'cfdo' is alphabetically lower than 'cfile', it is after 440 -- 'cfile' in this cmd list to support the existing ":cf" abbreviation. 441 { 442 command = 'cfdo', 443 flags = bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, DFLALL), 444 addr_type = 'ADDR_QUICKFIX_VALID', 445 func = 'ex_listdo', 446 }, 447 { 448 command = 'cfirst', 449 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 450 addr_type = 'ADDR_UNSIGNED', 451 func = 'ex_cc', 452 }, 453 { 454 command = 'cgetfile', 455 flags = bit.bor(TRLBAR, FILE1), 456 addr_type = 'ADDR_NONE', 457 func = 'ex_cfile', 458 }, 459 { 460 command = 'cgetbuffer', 461 flags = bit.bor(RANGE, WORD1, TRLBAR), 462 addr_type = 'ADDR_LINES', 463 func = 'ex_cbuffer', 464 }, 465 { 466 command = 'cgetexpr', 467 flags = bit.bor(NEEDARG, WORD1, NOTRLCOM), 468 addr_type = 'ADDR_NONE', 469 func = 'ex_cexpr', 470 }, 471 { 472 command = 'chdir', 473 flags = bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), 474 addr_type = 'ADDR_NONE', 475 func = 'ex_cd', 476 }, 477 { 478 command = 'changes', 479 flags = bit.bor(TRLBAR, CMDWIN, LOCK_OK), 480 addr_type = 'ADDR_NONE', 481 func = 'ex_changes', 482 }, 483 { 484 command = 'checkhealth', 485 flags = bit.bor(EXTRA, TRLBAR), 486 addr_type = 'ADDR_NONE', 487 func = 'ex_checkhealth', 488 }, 489 { 490 command = 'checkpath', 491 flags = bit.bor(TRLBAR, BANG, CMDWIN, LOCK_OK), 492 addr_type = 'ADDR_NONE', 493 func = 'ex_checkpath', 494 }, 495 { 496 command = 'checktime', 497 flags = bit.bor(RANGE, BUFNAME, COUNT, EXTRA, TRLBAR), 498 addr_type = 'ADDR_OTHER', 499 func = 'ex_checktime', 500 }, 501 { 502 command = 'chistory', 503 flags = bit.bor(RANGE, COUNT, TRLBAR), 504 addr_type = 'ADDR_UNSIGNED', 505 func = 'qf_history', 506 }, 507 { 508 command = 'clist', 509 flags = bit.bor(BANG, EXTRA, TRLBAR, CMDWIN, LOCK_OK), 510 addr_type = 'ADDR_NONE', 511 func = 'qf_list', 512 }, 513 { 514 command = 'clast', 515 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 516 addr_type = 'ADDR_UNSIGNED', 517 func = 'ex_cc', 518 }, 519 { 520 command = 'close', 521 flags = bit.bor(BANG, RANGE, COUNT, TRLBAR, CMDWIN, LOCK_OK), 522 addr_type = 'ADDR_WINDOWS', 523 func = 'ex_close', 524 }, 525 { 526 command = 'clearjumps', 527 flags = bit.bor(TRLBAR, CMDWIN, LOCK_OK), 528 addr_type = 'ADDR_NONE', 529 func = 'ex_clearjumps', 530 }, 531 { 532 command = 'cmap', 533 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 534 addr_type = 'ADDR_NONE', 535 func = 'ex_map', 536 }, 537 { 538 command = 'cmapclear', 539 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 540 addr_type = 'ADDR_NONE', 541 func = 'ex_mapclear', 542 }, 543 { 544 command = 'cmenu', 545 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 546 addr_type = 'ADDR_OTHER', 547 func = 'ex_menu', 548 }, 549 { 550 command = 'cnext', 551 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 552 addr_type = 'ADDR_UNSIGNED', 553 func = 'ex_cnext', 554 }, 555 { 556 command = 'cnewer', 557 flags = bit.bor(RANGE, COUNT, TRLBAR), 558 addr_type = 'ADDR_UNSIGNED', 559 func = 'qf_age', 560 }, 561 { 562 command = 'cnfile', 563 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 564 addr_type = 'ADDR_UNSIGNED', 565 func = 'ex_cnext', 566 }, 567 { 568 command = 'cnoremap', 569 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 570 addr_type = 'ADDR_NONE', 571 func = 'ex_map', 572 }, 573 { 574 command = 'cnoreabbrev', 575 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 576 addr_type = 'ADDR_NONE', 577 func = 'ex_abbreviate', 578 }, 579 { 580 command = 'cnoremenu', 581 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 582 addr_type = 'ADDR_OTHER', 583 func = 'ex_menu', 584 }, 585 { 586 command = 'copy', 587 flags = bit.bor(RANGE, WHOLEFOLD, EXTRA, TRLBAR, CMDWIN, LOCK_OK, MODIFY), 588 addr_type = 'ADDR_LINES', 589 func = 'ex_copymove', 590 }, 591 { 592 command = 'colder', 593 flags = bit.bor(RANGE, COUNT, TRLBAR), 594 addr_type = 'ADDR_UNSIGNED', 595 func = 'qf_age', 596 }, 597 { 598 command = 'colorscheme', 599 flags = bit.bor(WORD1, TRLBAR, CMDWIN, LOCK_OK), 600 addr_type = 'ADDR_NONE', 601 func = 'ex_colorscheme', 602 }, 603 { 604 command = 'command', 605 flags = bit.bor(EXTRA, BANG, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 606 addr_type = 'ADDR_NONE', 607 func = 'ex_command', 608 }, 609 { 610 command = 'comclear', 611 flags = bit.bor(TRLBAR, CMDWIN, LOCK_OK), 612 addr_type = 'ADDR_NONE', 613 func = 'ex_comclear', 614 }, 615 { 616 command = 'compiler', 617 flags = bit.bor(BANG, TRLBAR, WORD1, CMDWIN, LOCK_OK), 618 addr_type = 'ADDR_NONE', 619 func = 'ex_compiler', 620 }, 621 { 622 command = 'continue', 623 flags = bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 624 addr_type = 'ADDR_NONE', 625 func = 'ex_continue', 626 }, 627 { 628 command = 'confirm', 629 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM, CMDWIN, LOCK_OK), 630 addr_type = 'ADDR_NONE', 631 func = 'ex_wrongmodifier', 632 }, 633 { 634 command = 'connect', 635 flags = bit.bor(BANG, WORD1, NOTRLCOM, NEEDARG), 636 addr_type = 'ADDR_NONE', 637 func = 'ex_connect', 638 }, 639 { 640 command = 'const', 641 flags = bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 642 addr_type = 'ADDR_NONE', 643 func = 'ex_let', 644 }, 645 { 646 command = 'copen', 647 flags = bit.bor(RANGE, COUNT, TRLBAR), 648 addr_type = 'ADDR_OTHER', 649 func = 'ex_copen', 650 }, 651 { 652 command = 'cprevious', 653 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 654 addr_type = 'ADDR_UNSIGNED', 655 func = 'ex_cnext', 656 }, 657 { 658 command = 'cpfile', 659 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 660 addr_type = 'ADDR_OTHER', 661 func = 'ex_cnext', 662 }, 663 { 664 command = 'cquit', 665 flags = bit.bor(RANGE, COUNT, ZEROR, TRLBAR, BANG), 666 addr_type = 'ADDR_UNSIGNED', 667 func = 'ex_cquit', 668 }, 669 { 670 command = 'crewind', 671 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 672 addr_type = 'ADDR_UNSIGNED', 673 func = 'ex_cc', 674 }, 675 { 676 command = 'cunmap', 677 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 678 addr_type = 'ADDR_NONE', 679 func = 'ex_unmap', 680 }, 681 { 682 command = 'cunabbrev', 683 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 684 addr_type = 'ADDR_NONE', 685 func = 'ex_abbreviate', 686 }, 687 { 688 command = 'cunmenu', 689 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 690 addr_type = 'ADDR_NONE', 691 func = 'ex_menu', 692 }, 693 { 694 command = 'cwindow', 695 flags = bit.bor(RANGE, COUNT, TRLBAR), 696 addr_type = 'ADDR_OTHER', 697 func = 'ex_cwindow', 698 }, 699 { 700 command = 'delete', 701 flags = bit.bor(RANGE, WHOLEFOLD, REGSTR, COUNT, TRLBAR, CMDWIN, LOCK_OK, MODIFY), 702 addr_type = 'ADDR_LINES', 703 func = 'ex_operators', 704 }, 705 { 706 command = 'delmarks', 707 flags = bit.bor(BANG, EXTRA, TRLBAR, CMDWIN, LOCK_OK), 708 addr_type = 'ADDR_NONE', 709 func = 'ex_delmarks', 710 }, 711 { 712 command = 'debug', 713 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 714 addr_type = 'ADDR_NONE', 715 func = 'ex_debug', 716 }, 717 { 718 command = 'debuggreedy', 719 flags = bit.bor(RANGE, ZEROR, TRLBAR, CMDWIN, LOCK_OK), 720 addr_type = 'ADDR_OTHER', 721 func = 'ex_debuggreedy', 722 }, 723 { 724 command = 'defer', 725 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 726 addr_type = 'ADDR_NONE', 727 func = 'ex_call', 728 }, 729 { 730 command = 'delcommand', 731 flags = bit.bor(BANG, NEEDARG, WORD1, TRLBAR, CMDWIN, LOCK_OK), 732 addr_type = 'ADDR_NONE', 733 func = 'ex_delcommand', 734 }, 735 { 736 command = 'delfunction', 737 flags = bit.bor(BANG, NEEDARG, WORD1, CMDWIN, LOCK_OK), 738 addr_type = 'ADDR_NONE', 739 func = 'ex_delfunction', 740 }, 741 { 742 command = 'detach', 743 flags = TRLBAR, 744 addr_type = 'ADDR_NONE', 745 func = 'ex_detach', 746 }, 747 { 748 command = 'display', 749 flags = bit.bor(EXTRA, NOTRLCOM, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 750 addr_type = 'ADDR_NONE', 751 func = 'ex_display', 752 }, 753 { 754 command = 'diffupdate', 755 flags = bit.bor(BANG, TRLBAR), 756 addr_type = 'ADDR_NONE', 757 func = 'ex_diffupdate', 758 }, 759 { 760 command = 'diffget', 761 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, MODIFY), 762 addr_type = 'ADDR_LINES', 763 func = 'ex_diffgetput', 764 }, 765 { 766 command = 'diffoff', 767 flags = bit.bor(BANG, TRLBAR), 768 addr_type = 'ADDR_NONE', 769 func = 'ex_diffoff', 770 }, 771 { 772 command = 'diffpatch', 773 flags = bit.bor(EXTRA, FILE1, TRLBAR, MODIFY), 774 addr_type = 'ADDR_NONE', 775 func = 'ex_diffpatch', 776 }, 777 { 778 command = 'diffput', 779 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR), 780 addr_type = 'ADDR_LINES', 781 func = 'ex_diffgetput', 782 }, 783 { 784 command = 'diffsplit', 785 flags = bit.bor(EXTRA, FILE1, TRLBAR), 786 addr_type = 'ADDR_NONE', 787 func = 'ex_diffsplit', 788 }, 789 { 790 command = 'diffthis', 791 flags = bit.bor(TRLBAR), 792 addr_type = 'ADDR_NONE', 793 func = 'ex_diffthis', 794 }, 795 { 796 command = 'digraphs', 797 flags = bit.bor(BANG, EXTRA, TRLBAR, CMDWIN, LOCK_OK), 798 addr_type = 'ADDR_NONE', 799 func = 'ex_digraphs', 800 }, 801 { 802 command = 'djump', 803 flags = bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA), 804 addr_type = 'ADDR_LINES', 805 func = 'ex_findpat', 806 }, 807 { 808 command = 'dlist', 809 flags = bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK), 810 addr_type = 'ADDR_LINES', 811 func = 'ex_findpat', 812 }, 813 { 814 command = 'doautocmd', 815 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 816 addr_type = 'ADDR_NONE', 817 func = 'ex_doautocmd', 818 }, 819 { 820 command = 'doautoall', 821 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 822 addr_type = 'ADDR_NONE', 823 func = 'ex_doautoall', 824 }, 825 { 826 command = 'drop', 827 flags = bit.bor(BANG, FILES, CMDARG, NEEDARG, ARGOPT, TRLBAR), 828 addr_type = 'ADDR_NONE', 829 func = 'ex_drop', 830 }, 831 { 832 command = 'dsearch', 833 flags = bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK), 834 addr_type = 'ADDR_LINES', 835 func = 'ex_findpat', 836 }, 837 { 838 command = 'dsplit', 839 flags = bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA), 840 addr_type = 'ADDR_LINES', 841 func = 'ex_findpat', 842 }, 843 { 844 command = 'edit', 845 flags = bit.bor(BANG, FILE1, CMDARG, ARGOPT, TRLBAR), 846 addr_type = 'ADDR_NONE', 847 func = 'ex_edit', 848 }, 849 { 850 command = 'earlier', 851 flags = bit.bor(TRLBAR, EXTRA, NOSPC, CMDWIN, LOCK_OK), 852 addr_type = 'ADDR_NONE', 853 func = 'ex_later', 854 }, 855 { 856 command = 'echo', 857 flags = bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 858 addr_type = 'ADDR_NONE', 859 func = 'ex_echo', 860 }, 861 { 862 command = 'echoerr', 863 flags = bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 864 addr_type = 'ADDR_NONE', 865 func = 'ex_execute', 866 }, 867 { 868 command = 'echohl', 869 flags = bit.bor(EXTRA, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 870 addr_type = 'ADDR_NONE', 871 func = 'ex_echohl', 872 }, 873 { 874 command = 'echomsg', 875 flags = bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 876 addr_type = 'ADDR_NONE', 877 func = 'ex_execute', 878 }, 879 { 880 command = 'echon', 881 flags = bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 882 addr_type = 'ADDR_NONE', 883 func = 'ex_echo', 884 }, 885 { 886 command = 'else', 887 flags = bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 888 addr_type = 'ADDR_NONE', 889 func = 'ex_else', 890 }, 891 { 892 command = 'elseif', 893 flags = bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 894 addr_type = 'ADDR_NONE', 895 func = 'ex_else', 896 }, 897 { 898 command = 'emenu', 899 flags = bit.bor(NEEDARG, EXTRA, TRLBAR, NOTRLCOM, RANGE, CMDWIN, LOCK_OK), 900 addr_type = 'ADDR_OTHER', 901 func = 'ex_emenu', 902 }, 903 { 904 command = 'endif', 905 flags = bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 906 addr_type = 'ADDR_NONE', 907 func = 'ex_endif', 908 }, 909 { 910 command = 'endfunction', 911 flags = bit.bor(TRLBAR, CMDWIN, LOCK_OK), 912 addr_type = 'ADDR_NONE', 913 func = 'ex_endfunction', 914 }, 915 { 916 command = 'endfor', 917 flags = bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 918 addr_type = 'ADDR_NONE', 919 func = 'ex_endwhile', 920 }, 921 { 922 command = 'endtry', 923 flags = bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 924 addr_type = 'ADDR_NONE', 925 func = 'ex_endtry', 926 }, 927 { 928 command = 'endwhile', 929 flags = bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 930 addr_type = 'ADDR_NONE', 931 func = 'ex_endwhile', 932 }, 933 { 934 command = 'enew', 935 flags = bit.bor(BANG, TRLBAR), 936 addr_type = 'ADDR_NONE', 937 func = 'ex_edit', 938 }, 939 { 940 command = 'eval', 941 flags = bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 942 addr_type = 'ADDR_NONE', 943 func = 'ex_eval', 944 }, 945 { 946 command = 'ex', 947 flags = bit.bor(BANG, FILE1, CMDARG, ARGOPT, TRLBAR), 948 addr_type = 'ADDR_NONE', 949 func = 'ex_edit', 950 }, 951 { 952 command = 'execute', 953 flags = bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 954 addr_type = 'ADDR_NONE', 955 func = 'ex_execute', 956 }, 957 { 958 command = 'exit', 959 flags = bit.bor(RANGE, WHOLEFOLD, BANG, FILE1, ARGOPT, DFLALL, TRLBAR, CMDWIN, LOCK_OK), 960 addr_type = 'ADDR_LINES', 961 func = 'ex_exit', 962 }, 963 { 964 command = 'exusage', 965 flags = bit.bor(TRLBAR), 966 addr_type = 'ADDR_NONE', 967 func = 'ex_exusage', 968 }, 969 { 970 command = 'file', 971 flags = bit.bor(RANGE, ZEROR, BANG, FILE1, TRLBAR), 972 addr_type = 'ADDR_OTHER', 973 func = 'ex_file', 974 }, 975 { 976 command = 'files', 977 flags = bit.bor(BANG, EXTRA, TRLBAR, CMDWIN, LOCK_OK), 978 addr_type = 'ADDR_NONE', 979 func = 'buflist_list', 980 }, 981 { 982 command = 'filetype', 983 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 984 addr_type = 'ADDR_NONE', 985 func = 'ex_filetype', 986 }, 987 { 988 command = 'filter', 989 flags = bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM), 990 addr_type = 'ADDR_NONE', 991 func = 'ex_wrongmodifier', 992 }, 993 { 994 command = 'find', 995 flags = bit.bor(RANGE, BANG, FILE1, CMDARG, ARGOPT, TRLBAR, NEEDARG), 996 addr_type = 'ADDR_OTHER', 997 func = 'ex_find', 998 }, 999 { 1000 command = 'finally', 1001 flags = bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 1002 addr_type = 'ADDR_NONE', 1003 func = 'ex_finally', 1004 }, 1005 { 1006 command = 'finish', 1007 flags = bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 1008 addr_type = 'ADDR_NONE', 1009 func = 'ex_finish', 1010 }, 1011 { 1012 command = 'first', 1013 flags = bit.bor(EXTRA, BANG, CMDARG, ARGOPT, TRLBAR), 1014 addr_type = 'ADDR_NONE', 1015 func = 'ex_rewind', 1016 }, 1017 { 1018 command = 'fold', 1019 flags = bit.bor(RANGE, WHOLEFOLD, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 1020 addr_type = 'ADDR_LINES', 1021 func = 'ex_fold', 1022 }, 1023 { 1024 command = 'foldclose', 1025 flags = bit.bor(RANGE, BANG, WHOLEFOLD, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 1026 addr_type = 'ADDR_LINES', 1027 func = 'ex_foldopen', 1028 }, 1029 { 1030 command = 'folddoopen', 1031 flags = bit.bor(RANGE, DFLALL, NEEDARG, EXTRA, NOTRLCOM), 1032 addr_type = 'ADDR_LINES', 1033 func = 'ex_folddo', 1034 }, 1035 { 1036 command = 'folddoclosed', 1037 flags = bit.bor(RANGE, DFLALL, NEEDARG, EXTRA, NOTRLCOM), 1038 addr_type = 'ADDR_LINES', 1039 func = 'ex_folddo', 1040 }, 1041 { 1042 command = 'foldopen', 1043 flags = bit.bor(RANGE, BANG, WHOLEFOLD, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 1044 addr_type = 'ADDR_LINES', 1045 func = 'ex_foldopen', 1046 }, 1047 { 1048 command = 'for', 1049 flags = bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 1050 addr_type = 'ADDR_NONE', 1051 func = 'ex_while', 1052 }, 1053 { 1054 command = 'function', 1055 flags = bit.bor(EXTRA, BANG, SBOXOK, CMDWIN, LOCK_OK), 1056 addr_type = 'ADDR_NONE', 1057 func = 'ex_function', 1058 }, 1059 { 1060 command = 'fclose', 1061 flags = bit.bor(BANG, RANGE, TRLBAR), 1062 addr_type = 'ADDR_OTHER', 1063 func = 'ex_fclose', 1064 }, 1065 { 1066 command = 'global', 1067 flags = bit.bor(RANGE, WHOLEFOLD, BANG, EXTRA, DFLALL, SBOXOK, CMDWIN, LOCK_OK), 1068 addr_type = 'ADDR_LINES', 1069 func = 'ex_global', 1070 }, 1071 { 1072 command = 'goto', 1073 flags = bit.bor(RANGE, COUNT, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 1074 addr_type = 'ADDR_OTHER', 1075 func = 'ex_goto', 1076 }, 1077 { 1078 command = 'grep', 1079 flags = bit.bor(RANGE, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE), 1080 addr_type = 'ADDR_OTHER', 1081 func = 'ex_make', 1082 }, 1083 { 1084 command = 'grepadd', 1085 flags = bit.bor(RANGE, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE), 1086 addr_type = 'ADDR_OTHER', 1087 func = 'ex_make', 1088 }, 1089 { 1090 command = 'gui', 1091 flags = bit.bor(BANG, FILES, CMDARG, ARGOPT, TRLBAR, CMDWIN, LOCK_OK), 1092 addr_type = 'ADDR_NONE', 1093 func = 'ex_nogui', 1094 }, 1095 { 1096 command = 'gvim', 1097 flags = bit.bor(BANG, FILES, CMDARG, ARGOPT, TRLBAR, CMDWIN, LOCK_OK), 1098 addr_type = 'ADDR_NONE', 1099 func = 'ex_nogui', 1100 }, 1101 { 1102 command = 'help', 1103 flags = bit.bor(BANG, EXTRA, NOTRLCOM), 1104 addr_type = 'ADDR_NONE', 1105 func = 'ex_help', 1106 }, 1107 { 1108 command = 'helpclose', 1109 flags = TRLBAR, 1110 addr_type = 'ADDR_NONE', 1111 func = 'ex_helpclose', 1112 }, 1113 { 1114 command = 'helpgrep', 1115 flags = bit.bor(EXTRA, NOTRLCOM, NEEDARG), 1116 addr_type = 'ADDR_NONE', 1117 func = 'ex_helpgrep', 1118 }, 1119 { 1120 command = 'helptags', 1121 flags = bit.bor(NEEDARG, FILES, TRLBAR, CMDWIN, LOCK_OK), 1122 addr_type = 'ADDR_NONE', 1123 func = 'ex_helptags', 1124 }, 1125 { 1126 command = 'highlight', 1127 flags = bit.bor(BANG, EXTRA, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 1128 addr_type = 'ADDR_NONE', 1129 func = 'ex_highlight', 1130 }, 1131 { 1132 command = 'hide', 1133 flags = bit.bor(BANG, RANGE, COUNT, EXTRA, TRLBAR), 1134 addr_type = 'ADDR_WINDOWS', 1135 func = 'ex_hide', 1136 }, 1137 { 1138 command = 'history', 1139 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 1140 addr_type = 'ADDR_NONE', 1141 func = 'ex_history', 1142 }, 1143 { 1144 command = 'horizontal', 1145 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM), 1146 addr_type = 'ADDR_NONE', 1147 func = 'ex_wrongmodifier', 1148 }, 1149 { 1150 command = 'insert', 1151 flags = bit.bor(BANG, RANGE, TRLBAR, CMDWIN, LOCK_OK, MODIFY), 1152 addr_type = 'ADDR_LINES', 1153 func = 'ex_append', 1154 }, 1155 { 1156 command = 'iabbrev', 1157 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1158 addr_type = 'ADDR_NONE', 1159 func = 'ex_abbreviate', 1160 }, 1161 { 1162 command = 'iabclear', 1163 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 1164 addr_type = 'ADDR_NONE', 1165 func = 'ex_abclear', 1166 }, 1167 { 1168 command = 'if', 1169 flags = bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 1170 addr_type = 'ADDR_NONE', 1171 func = 'ex_if', 1172 }, 1173 { 1174 command = 'ijump', 1175 flags = bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA), 1176 addr_type = 'ADDR_LINES', 1177 func = 'ex_findpat', 1178 }, 1179 { 1180 command = 'ilist', 1181 flags = bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK), 1182 addr_type = 'ADDR_LINES', 1183 func = 'ex_findpat', 1184 }, 1185 { 1186 command = 'imap', 1187 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1188 addr_type = 'ADDR_NONE', 1189 func = 'ex_map', 1190 }, 1191 { 1192 command = 'imapclear', 1193 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 1194 addr_type = 'ADDR_NONE', 1195 func = 'ex_mapclear', 1196 }, 1197 { 1198 command = 'imenu', 1199 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1200 addr_type = 'ADDR_OTHER', 1201 func = 'ex_menu', 1202 }, 1203 { 1204 command = 'inoremap', 1205 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1206 addr_type = 'ADDR_NONE', 1207 func = 'ex_map', 1208 }, 1209 { 1210 command = 'inoreabbrev', 1211 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1212 addr_type = 'ADDR_NONE', 1213 func = 'ex_abbreviate', 1214 }, 1215 { 1216 command = 'inoremenu', 1217 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1218 addr_type = 'ADDR_OTHER', 1219 func = 'ex_menu', 1220 }, 1221 { 1222 command = 'intro', 1223 flags = bit.bor(TRLBAR, CMDWIN, LOCK_OK), 1224 addr_type = 'ADDR_NONE', 1225 func = 'ex_intro', 1226 }, 1227 { 1228 command = 'iput', 1229 flags = bit.bor(RANGE, WHOLEFOLD, BANG, REGSTR, TRLBAR, ZEROR, CMDWIN, LOCK_OK, MODIFY), 1230 addr_type = 'ADDR_LINES', 1231 func = 'ex_iput', 1232 }, 1233 { 1234 command = 'isearch', 1235 flags = bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK), 1236 addr_type = 'ADDR_LINES', 1237 func = 'ex_findpat', 1238 }, 1239 { 1240 command = 'isplit', 1241 flags = bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA), 1242 addr_type = 'ADDR_LINES', 1243 func = 'ex_findpat', 1244 }, 1245 { 1246 command = 'iunmap', 1247 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1248 addr_type = 'ADDR_NONE', 1249 func = 'ex_unmap', 1250 }, 1251 { 1252 command = 'iunabbrev', 1253 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1254 addr_type = 'ADDR_NONE', 1255 func = 'ex_abbreviate', 1256 }, 1257 { 1258 command = 'iunmenu', 1259 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1260 addr_type = 'ADDR_NONE', 1261 func = 'ex_menu', 1262 }, 1263 { 1264 command = 'join', 1265 flags = bit.bor(BANG, RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN, LOCK_OK, MODIFY), 1266 addr_type = 'ADDR_LINES', 1267 func = 'ex_join', 1268 }, 1269 { 1270 command = 'jumps', 1271 flags = bit.bor(TRLBAR, CMDWIN, LOCK_OK), 1272 addr_type = 'ADDR_NONE', 1273 func = 'ex_jumps', 1274 }, 1275 { 1276 command = 'k', 1277 flags = bit.bor(RANGE, WORD1, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 1278 addr_type = 'ADDR_LINES', 1279 func = 'ex_mark', 1280 }, 1281 { 1282 command = 'keepmarks', 1283 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM), 1284 addr_type = 'ADDR_NONE', 1285 func = 'ex_wrongmodifier', 1286 }, 1287 { 1288 command = 'keepjumps', 1289 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM), 1290 addr_type = 'ADDR_NONE', 1291 func = 'ex_wrongmodifier', 1292 }, 1293 { 1294 command = 'keeppatterns', 1295 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM), 1296 addr_type = 'ADDR_NONE', 1297 func = 'ex_wrongmodifier', 1298 }, 1299 { 1300 command = 'keepalt', 1301 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM), 1302 addr_type = 'ADDR_NONE', 1303 func = 'ex_wrongmodifier', 1304 }, 1305 { 1306 command = 'list', 1307 flags = bit.bor(RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN, LOCK_OK), 1308 addr_type = 'ADDR_LINES', 1309 func = 'ex_print', 1310 }, 1311 { 1312 command = 'lNext', 1313 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 1314 addr_type = 'ADDR_UNSIGNED', 1315 func = 'ex_cnext', 1316 }, 1317 { 1318 command = 'lNfile', 1319 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 1320 addr_type = 'ADDR_UNSIGNED', 1321 func = 'ex_cnext', 1322 }, 1323 { 1324 command = 'last', 1325 flags = bit.bor(EXTRA, BANG, CMDARG, ARGOPT, TRLBAR), 1326 addr_type = 'ADDR_NONE', 1327 func = 'ex_last', 1328 }, 1329 { 1330 command = 'labove', 1331 flags = bit.bor(RANGE, COUNT, TRLBAR), 1332 addr_type = 'ADDR_UNSIGNED', 1333 func = 'ex_cbelow', 1334 }, 1335 { 1336 command = 'language', 1337 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 1338 addr_type = 'ADDR_NONE', 1339 func = 'ex_language', 1340 }, 1341 { 1342 command = 'laddexpr', 1343 flags = bit.bor(NEEDARG, WORD1, NOTRLCOM), 1344 addr_type = 'ADDR_NONE', 1345 func = 'ex_cexpr', 1346 }, 1347 { 1348 command = 'laddbuffer', 1349 flags = bit.bor(RANGE, WORD1, TRLBAR), 1350 addr_type = 'ADDR_LINES', 1351 func = 'ex_cbuffer', 1352 }, 1353 { 1354 command = 'laddfile', 1355 flags = bit.bor(TRLBAR, FILE1), 1356 addr_type = 'ADDR_NONE', 1357 func = 'ex_cfile', 1358 }, 1359 { 1360 command = 'lafter', 1361 flags = bit.bor(RANGE, COUNT, TRLBAR), 1362 addr_type = 'ADDR_UNSIGNED', 1363 func = 'ex_cbelow', 1364 }, 1365 { 1366 command = 'later', 1367 flags = bit.bor(TRLBAR, EXTRA, NOSPC, CMDWIN, LOCK_OK), 1368 addr_type = 'ADDR_NONE', 1369 func = 'ex_later', 1370 }, 1371 { 1372 command = 'lbuffer', 1373 flags = bit.bor(BANG, RANGE, WORD1, TRLBAR), 1374 addr_type = 'ADDR_LINES', 1375 func = 'ex_cbuffer', 1376 }, 1377 { 1378 command = 'lbefore', 1379 flags = bit.bor(RANGE, COUNT, TRLBAR), 1380 addr_type = 'ADDR_UNSIGNED', 1381 func = 'ex_cbelow', 1382 }, 1383 { 1384 command = 'lbelow', 1385 flags = bit.bor(RANGE, COUNT, TRLBAR), 1386 addr_type = 'ADDR_UNSIGNED', 1387 func = 'ex_cbelow', 1388 }, 1389 { 1390 command = 'lbottom', 1391 flags = bit.bor(TRLBAR), 1392 addr_type = 'ADDR_NONE', 1393 func = 'ex_cbottom', 1394 }, 1395 { 1396 command = 'lcd', 1397 flags = bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), 1398 addr_type = 'ADDR_NONE', 1399 func = 'ex_cd', 1400 }, 1401 { 1402 command = 'lchdir', 1403 flags = bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), 1404 addr_type = 'ADDR_NONE', 1405 func = 'ex_cd', 1406 }, 1407 { 1408 command = 'lclose', 1409 flags = bit.bor(RANGE, COUNT, TRLBAR), 1410 addr_type = 'ADDR_OTHER', 1411 func = 'ex_cclose', 1412 }, 1413 { 1414 command = 'ldo', 1415 flags = bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, DFLALL), 1416 addr_type = 'ADDR_QUICKFIX_VALID', 1417 func = 'ex_listdo', 1418 }, 1419 { 1420 command = 'left', 1421 flags = bit.bor(TRLBAR, RANGE, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK, MODIFY), 1422 addr_type = 'ADDR_LINES', 1423 func = 'ex_align', 1424 }, 1425 { 1426 command = 'leftabove', 1427 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM), 1428 addr_type = 'ADDR_NONE', 1429 func = 'ex_wrongmodifier', 1430 }, 1431 { 1432 command = 'let', 1433 flags = bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 1434 addr_type = 'ADDR_NONE', 1435 func = 'ex_let', 1436 }, 1437 { 1438 command = 'lexpr', 1439 flags = bit.bor(NEEDARG, WORD1, NOTRLCOM, BANG), 1440 addr_type = 'ADDR_NONE', 1441 func = 'ex_cexpr', 1442 }, 1443 { 1444 command = 'lfile', 1445 flags = bit.bor(TRLBAR, FILE1, BANG), 1446 addr_type = 'ADDR_NONE', 1447 func = 'ex_cfile', 1448 }, 1449 -- Even though 'lfdo' is alphabetically lower than 'lfile', it is after 1450 -- 'lfile' in this cmd list to support the existing ":lf" abbreviation. 1451 { 1452 command = 'lfdo', 1453 flags = bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, DFLALL), 1454 addr_type = 'ADDR_QUICKFIX_VALID', 1455 func = 'ex_listdo', 1456 }, 1457 { 1458 command = 'lfirst', 1459 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 1460 addr_type = 'ADDR_UNSIGNED', 1461 func = 'ex_cc', 1462 }, 1463 { 1464 command = 'lgetfile', 1465 flags = bit.bor(TRLBAR, FILE1), 1466 addr_type = 'ADDR_NONE', 1467 func = 'ex_cfile', 1468 }, 1469 { 1470 command = 'lgetbuffer', 1471 flags = bit.bor(RANGE, WORD1, TRLBAR), 1472 addr_type = 'ADDR_LINES', 1473 func = 'ex_cbuffer', 1474 }, 1475 { 1476 command = 'lgetexpr', 1477 flags = bit.bor(NEEDARG, WORD1, NOTRLCOM), 1478 addr_type = 'ADDR_NONE', 1479 func = 'ex_cexpr', 1480 }, 1481 { 1482 command = 'lgrep', 1483 flags = bit.bor(RANGE, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE), 1484 addr_type = 'ADDR_OTHER', 1485 func = 'ex_make', 1486 }, 1487 { 1488 command = 'lgrepadd', 1489 flags = bit.bor(RANGE, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE), 1490 addr_type = 'ADDR_OTHER', 1491 func = 'ex_make', 1492 }, 1493 { 1494 command = 'lhelpgrep', 1495 flags = bit.bor(EXTRA, NOTRLCOM, NEEDARG), 1496 addr_type = 'ADDR_NONE', 1497 func = 'ex_helpgrep', 1498 }, 1499 { 1500 command = 'lhistory', 1501 flags = bit.bor(RANGE, COUNT, TRLBAR), 1502 addr_type = 'ADDR_UNSIGNED', 1503 func = 'qf_history', 1504 }, 1505 { 1506 command = 'll', 1507 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 1508 addr_type = 'ADDR_QUICKFIX', 1509 func = 'ex_cc', 1510 }, 1511 { 1512 command = 'llast', 1513 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 1514 addr_type = 'ADDR_UNSIGNED', 1515 func = 'ex_cc', 1516 }, 1517 { 1518 command = 'llist', 1519 flags = bit.bor(BANG, EXTRA, TRLBAR, CMDWIN, LOCK_OK), 1520 addr_type = 'ADDR_NONE', 1521 func = 'qf_list', 1522 }, 1523 { 1524 command = 'lmap', 1525 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1526 addr_type = 'ADDR_NONE', 1527 func = 'ex_map', 1528 }, 1529 { 1530 command = 'lmapclear', 1531 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 1532 addr_type = 'ADDR_NONE', 1533 func = 'ex_mapclear', 1534 }, 1535 { 1536 command = 'lmake', 1537 flags = bit.bor(BANG, EXTRA, NOTRLCOM, TRLBAR, XFILE), 1538 addr_type = 'ADDR_NONE', 1539 func = 'ex_make', 1540 }, 1541 { 1542 command = 'lnoremap', 1543 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1544 addr_type = 'ADDR_NONE', 1545 func = 'ex_map', 1546 }, 1547 { 1548 command = 'lnext', 1549 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 1550 addr_type = 'ADDR_UNSIGNED', 1551 func = 'ex_cnext', 1552 }, 1553 { 1554 command = 'lnewer', 1555 flags = bit.bor(RANGE, COUNT, TRLBAR), 1556 addr_type = 'ADDR_UNSIGNED', 1557 func = 'qf_age', 1558 }, 1559 { 1560 command = 'lnfile', 1561 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 1562 addr_type = 'ADDR_UNSIGNED', 1563 func = 'ex_cnext', 1564 }, 1565 { 1566 command = 'loadview', 1567 flags = bit.bor(FILE1, TRLBAR), 1568 addr_type = 'ADDR_NONE', 1569 func = 'ex_loadview', 1570 }, 1571 { 1572 command = 'loadkeymap', 1573 flags = bit.bor(CMDWIN, LOCK_OK), 1574 addr_type = 'ADDR_NONE', 1575 func = 'ex_loadkeymap', 1576 }, 1577 { 1578 command = 'lockmarks', 1579 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM), 1580 addr_type = 'ADDR_NONE', 1581 func = 'ex_wrongmodifier', 1582 }, 1583 { 1584 command = 'lockvar', 1585 flags = bit.bor(BANG, EXTRA, NEEDARG, SBOXOK, CMDWIN, LOCK_OK), 1586 addr_type = 'ADDR_NONE', 1587 func = 'ex_lockvar', 1588 }, 1589 { 1590 command = 'lolder', 1591 flags = bit.bor(RANGE, COUNT, TRLBAR), 1592 addr_type = 'ADDR_UNSIGNED', 1593 func = 'qf_age', 1594 }, 1595 { 1596 command = 'lopen', 1597 flags = bit.bor(RANGE, COUNT, TRLBAR), 1598 addr_type = 'ADDR_OTHER', 1599 func = 'ex_copen', 1600 }, 1601 { 1602 command = 'lprevious', 1603 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 1604 addr_type = 'ADDR_UNSIGNED', 1605 func = 'ex_cnext', 1606 }, 1607 { 1608 command = 'lpfile', 1609 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 1610 addr_type = 'ADDR_OTHER', 1611 func = 'ex_cnext', 1612 }, 1613 { 1614 command = 'lrewind', 1615 flags = bit.bor(RANGE, COUNT, TRLBAR, BANG), 1616 addr_type = 'ADDR_UNSIGNED', 1617 func = 'ex_cc', 1618 }, 1619 { 1620 command = 'ltag', 1621 flags = bit.bor(TRLBAR, BANG, WORD1), 1622 addr_type = 'ADDR_NONE', 1623 func = 'ex_tag', 1624 }, 1625 { 1626 command = 'lunmap', 1627 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1628 addr_type = 'ADDR_NONE', 1629 func = 'ex_unmap', 1630 }, 1631 { 1632 command = 'lua', 1633 flags = bit.bor(RANGE, EXTRA, CMDWIN, LOCK_OK), 1634 addr_type = 'ADDR_LINES', 1635 func = 'ex_lua', 1636 }, 1637 { 1638 command = 'luado', 1639 flags = bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN, LOCK_OK), 1640 addr_type = 'ADDR_LINES', 1641 func = 'ex_luado', 1642 }, 1643 { 1644 command = 'luafile', 1645 flags = bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, LOCK_OK), 1646 addr_type = 'ADDR_LINES', 1647 func = 'ex_luafile', 1648 }, 1649 { 1650 command = 'lvimgrep', 1651 flags = bit.bor(RANGE, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE, LOCK_OK), 1652 addr_type = 'ADDR_OTHER', 1653 func = 'ex_vimgrep', 1654 }, 1655 { 1656 command = 'lvimgrepadd', 1657 flags = bit.bor(RANGE, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE, LOCK_OK), 1658 addr_type = 'ADDR_OTHER', 1659 func = 'ex_vimgrep', 1660 }, 1661 { 1662 command = 'lwindow', 1663 flags = bit.bor(RANGE, COUNT, TRLBAR), 1664 addr_type = 'ADDR_OTHER', 1665 func = 'ex_cwindow', 1666 }, 1667 { 1668 command = 'ls', 1669 flags = bit.bor(BANG, EXTRA, TRLBAR, CMDWIN, LOCK_OK), 1670 addr_type = 'ADDR_NONE', 1671 func = 'buflist_list', 1672 }, 1673 { 1674 command = 'lsp', 1675 flags = bit.bor(NEEDARG, EXTRA), 1676 addr_type = 'ADDR_NONE', 1677 func = 'ex_lsp', 1678 }, 1679 { 1680 command = 'move', 1681 flags = bit.bor(RANGE, WHOLEFOLD, EXTRA, TRLBAR, CMDWIN, LOCK_OK, MODIFY), 1682 addr_type = 'ADDR_LINES', 1683 func = 'ex_copymove', 1684 }, 1685 { 1686 command = 'mark', 1687 flags = bit.bor(RANGE, WORD1, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 1688 addr_type = 'ADDR_LINES', 1689 func = 'ex_mark', 1690 }, 1691 { 1692 command = 'make', 1693 flags = bit.bor(BANG, EXTRA, NOTRLCOM, TRLBAR, XFILE), 1694 addr_type = 'ADDR_NONE', 1695 func = 'ex_make', 1696 }, 1697 { 1698 command = 'map', 1699 flags = bit.bor(BANG, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1700 addr_type = 'ADDR_NONE', 1701 func = 'ex_map', 1702 }, 1703 { 1704 command = 'mapclear', 1705 flags = bit.bor(EXTRA, BANG, TRLBAR, CMDWIN, LOCK_OK), 1706 addr_type = 'ADDR_NONE', 1707 func = 'ex_mapclear', 1708 }, 1709 { 1710 command = 'marks', 1711 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 1712 addr_type = 'ADDR_NONE', 1713 func = 'ex_marks', 1714 }, 1715 { 1716 command = 'match', 1717 flags = bit.bor(RANGE, EXTRA, CMDWIN, LOCK_OK), 1718 addr_type = 'ADDR_OTHER', 1719 func = 'ex_match', 1720 }, 1721 { 1722 command = 'menu', 1723 flags = bit.bor(RANGE, ZEROR, BANG, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1724 addr_type = 'ADDR_OTHER', 1725 func = 'ex_menu', 1726 }, 1727 { 1728 command = 'menutranslate', 1729 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1730 addr_type = 'ADDR_NONE', 1731 func = 'ex_menutranslate', 1732 }, 1733 { 1734 command = 'messages', 1735 flags = bit.bor(EXTRA, TRLBAR, RANGE, CMDWIN, LOCK_OK), 1736 addr_type = 'ADDR_OTHER', 1737 func = 'ex_messages', 1738 }, 1739 { 1740 command = 'mkexrc', 1741 flags = bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), 1742 addr_type = 'ADDR_NONE', 1743 func = 'ex_mkrc', 1744 }, 1745 { 1746 command = 'mksession', 1747 flags = bit.bor(BANG, FILE1, TRLBAR), 1748 addr_type = 'ADDR_NONE', 1749 func = 'ex_mkrc', 1750 }, 1751 { 1752 command = 'mkspell', 1753 flags = bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE), 1754 addr_type = 'ADDR_NONE', 1755 func = 'ex_mkspell', 1756 }, 1757 { 1758 command = 'mkvimrc', 1759 flags = bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), 1760 addr_type = 'ADDR_NONE', 1761 func = 'ex_mkrc', 1762 }, 1763 { 1764 command = 'mkview', 1765 flags = bit.bor(BANG, FILE1, TRLBAR), 1766 addr_type = 'ADDR_NONE', 1767 func = 'ex_mkrc', 1768 }, 1769 { 1770 command = 'mode', 1771 flags = bit.bor(WORD1, TRLBAR, CMDWIN, LOCK_OK), 1772 addr_type = 'ADDR_NONE', 1773 func = 'ex_mode', 1774 }, 1775 { 1776 command = 'mzscheme', 1777 flags = bit.bor(RANGE, EXTRA, DFLALL, NEEDARG, CMDWIN, LOCK_OK, SBOXOK), 1778 addr_type = 'ADDR_LINES', 1779 func = 'ex_script_ni', 1780 }, 1781 { 1782 command = 'mzfile', 1783 flags = bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, LOCK_OK), 1784 addr_type = 'ADDR_LINES', 1785 func = 'ex_ni', 1786 }, 1787 { 1788 command = 'next', 1789 flags = bit.bor(RANGE, BANG, FILES, CMDARG, ARGOPT, TRLBAR), 1790 addr_type = 'ADDR_OTHER', 1791 func = 'ex_next', 1792 }, 1793 { 1794 command = 'new', 1795 flags = bit.bor(BANG, FILE1, RANGE, CMDARG, ARGOPT, TRLBAR), 1796 addr_type = 'ADDR_OTHER', 1797 func = 'ex_splitview', 1798 }, 1799 { 1800 command = 'nmap', 1801 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1802 addr_type = 'ADDR_NONE', 1803 func = 'ex_map', 1804 }, 1805 { 1806 command = 'nmapclear', 1807 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 1808 addr_type = 'ADDR_NONE', 1809 func = 'ex_mapclear', 1810 }, 1811 { 1812 command = 'nmenu', 1813 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1814 addr_type = 'ADDR_OTHER', 1815 func = 'ex_menu', 1816 }, 1817 { 1818 command = 'nnoremap', 1819 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1820 addr_type = 'ADDR_NONE', 1821 func = 'ex_map', 1822 }, 1823 { 1824 command = 'nnoremenu', 1825 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1826 addr_type = 'ADDR_OTHER', 1827 func = 'ex_menu', 1828 }, 1829 { 1830 command = 'noremap', 1831 flags = bit.bor(BANG, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1832 addr_type = 'ADDR_NONE', 1833 func = 'ex_map', 1834 }, 1835 { 1836 command = 'noautocmd', 1837 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM), 1838 addr_type = 'ADDR_NONE', 1839 func = 'ex_wrongmodifier', 1840 }, 1841 { 1842 command = 'nohlsearch', 1843 flags = bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 1844 addr_type = 'ADDR_NONE', 1845 func = 'ex_nohlsearch', 1846 }, 1847 { 1848 command = 'noreabbrev', 1849 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1850 addr_type = 'ADDR_NONE', 1851 func = 'ex_abbreviate', 1852 }, 1853 { 1854 command = 'noremenu', 1855 flags = bit.bor(RANGE, ZEROR, BANG, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1856 addr_type = 'ADDR_OTHER', 1857 func = 'ex_menu', 1858 }, 1859 { 1860 command = 'noswapfile', 1861 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM), 1862 addr_type = 'ADDR_NONE', 1863 func = 'ex_wrongmodifier', 1864 }, 1865 { 1866 command = 'normal', 1867 flags = bit.bor(RANGE, BANG, EXTRA, NEEDARG, NOTRLCOM, CTRLV, SBOXOK, CMDWIN, LOCK_OK), 1868 addr_type = 'ADDR_LINES', 1869 func = 'ex_normal', 1870 }, 1871 { 1872 command = 'number', 1873 flags = bit.bor(RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN, LOCK_OK), 1874 addr_type = 'ADDR_LINES', 1875 func = 'ex_print', 1876 }, 1877 { 1878 command = 'nunmap', 1879 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1880 addr_type = 'ADDR_NONE', 1881 func = 'ex_unmap', 1882 }, 1883 { 1884 command = 'nunmenu', 1885 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1886 addr_type = 'ADDR_NONE', 1887 func = 'ex_menu', 1888 }, 1889 { 1890 command = 'oldfiles', 1891 flags = bit.bor(BANG, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 1892 addr_type = 'ADDR_NONE', 1893 func = 'ex_oldfiles', 1894 }, 1895 { 1896 command = 'omap', 1897 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1898 addr_type = 'ADDR_NONE', 1899 func = 'ex_map', 1900 }, 1901 { 1902 command = 'omapclear', 1903 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 1904 addr_type = 'ADDR_NONE', 1905 func = 'ex_mapclear', 1906 }, 1907 { 1908 command = 'omenu', 1909 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1910 addr_type = 'ADDR_OTHER', 1911 func = 'ex_menu', 1912 }, 1913 { 1914 command = 'only', 1915 flags = bit.bor(BANG, RANGE, COUNT, TRLBAR), 1916 addr_type = 'ADDR_WINDOWS', 1917 func = 'ex_only', 1918 }, 1919 { 1920 command = 'onoremap', 1921 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1922 addr_type = 'ADDR_NONE', 1923 func = 'ex_map', 1924 }, 1925 { 1926 command = 'onoremenu', 1927 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1928 addr_type = 'ADDR_OTHER', 1929 func = 'ex_menu', 1930 }, 1931 { 1932 command = 'options', 1933 flags = bit.bor(TRLBAR), 1934 addr_type = 'ADDR_NONE', 1935 func = 'ex_options', 1936 }, 1937 { 1938 command = 'ounmap', 1939 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1940 addr_type = 'ADDR_NONE', 1941 func = 'ex_unmap', 1942 }, 1943 { 1944 command = 'ounmenu', 1945 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 1946 addr_type = 'ADDR_NONE', 1947 func = 'ex_menu', 1948 }, 1949 { 1950 command = 'ownsyntax', 1951 flags = bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 1952 addr_type = 'ADDR_NONE', 1953 func = 'ex_ownsyntax', 1954 }, 1955 { 1956 command = 'print', 1957 flags = bit.bor(RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN, LOCK_OK, SBOXOK), 1958 addr_type = 'ADDR_LINES', 1959 func = 'ex_print', 1960 }, 1961 { 1962 command = 'packadd', 1963 flags = bit.bor(BANG, FILE1, NEEDARG, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 1964 addr_type = 'ADDR_NONE', 1965 func = 'ex_packadd', 1966 }, 1967 { 1968 command = 'packloadall', 1969 flags = bit.bor(BANG, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 1970 addr_type = 'ADDR_NONE', 1971 func = 'ex_packloadall', 1972 }, 1973 { 1974 command = 'pbuffer', 1975 flags = bit.bor(BANG, RANGE, BUFNAME, BUFUNL, COUNT, EXTRA, CMDARG, TRLBAR), 1976 addr_type = 'ADDR_BUFFERS', 1977 func = 'ex_pbuffer', 1978 }, 1979 { 1980 command = 'pclose', 1981 flags = bit.bor(BANG, TRLBAR), 1982 addr_type = 'ADDR_NONE', 1983 func = 'ex_pclose', 1984 }, 1985 { 1986 command = 'perl', 1987 flags = bit.bor(RANGE, EXTRA, DFLALL, NEEDARG, SBOXOK, CMDWIN, LOCK_OK), 1988 addr_type = 'ADDR_LINES', 1989 func = 'ex_perl', 1990 }, 1991 { 1992 command = 'perldo', 1993 flags = bit.bor(RANGE, EXTRA, DFLALL, NEEDARG, CMDWIN, LOCK_OK), 1994 addr_type = 'ADDR_LINES', 1995 func = 'ex_perldo', 1996 }, 1997 { 1998 command = 'perlfile', 1999 flags = bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, LOCK_OK), 2000 addr_type = 'ADDR_LINES', 2001 func = 'ex_perlfile', 2002 }, 2003 { 2004 command = 'pedit', 2005 flags = bit.bor(BANG, FILE1, CMDARG, ARGOPT, TRLBAR), 2006 addr_type = 'ADDR_NONE', 2007 func = 'ex_pedit', 2008 }, 2009 { 2010 command = 'pop', 2011 flags = bit.bor(RANGE, BANG, COUNT, TRLBAR, ZEROR), 2012 addr_type = 'ADDR_OTHER', 2013 func = 'ex_tag', 2014 }, 2015 { 2016 command = 'popup', 2017 flags = bit.bor(NEEDARG, EXTRA, BANG, TRLBAR, NOTRLCOM, CMDWIN, LOCK_OK), 2018 addr_type = 'ADDR_NONE', 2019 func = 'ex_popup', 2020 }, 2021 { 2022 command = 'ppop', 2023 flags = bit.bor(RANGE, BANG, COUNT, TRLBAR, ZEROR), 2024 addr_type = 'ADDR_OTHER', 2025 func = 'ex_ptag', 2026 }, 2027 { 2028 command = 'preserve', 2029 flags = bit.bor(TRLBAR), 2030 addr_type = 'ADDR_NONE', 2031 func = 'ex_preserve', 2032 }, 2033 { 2034 command = 'previous', 2035 flags = bit.bor(EXTRA, RANGE, COUNT, BANG, CMDARG, ARGOPT, TRLBAR), 2036 addr_type = 'ADDR_OTHER', 2037 func = 'ex_previous', 2038 }, 2039 { 2040 command = 'profile', 2041 flags = bit.bor(BANG, EXTRA, TRLBAR, CMDWIN, LOCK_OK), 2042 addr_type = 'ADDR_NONE', 2043 func = 'ex_profile', 2044 }, 2045 { 2046 command = 'profdel', 2047 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 2048 addr_type = 'ADDR_NONE', 2049 func = 'ex_breakdel', 2050 }, 2051 { 2052 command = 'psearch', 2053 flags = bit.bor(BANG, RANGE, WHOLEFOLD, DFLALL, EXTRA), 2054 addr_type = 'ADDR_LINES', 2055 func = 'ex_psearch', 2056 }, 2057 { 2058 command = 'ptag', 2059 flags = bit.bor(RANGE, BANG, WORD1, TRLBAR, ZEROR), 2060 addr_type = 'ADDR_OTHER', 2061 func = 'ex_ptag', 2062 }, 2063 { 2064 command = 'ptNext', 2065 flags = bit.bor(RANGE, BANG, TRLBAR, ZEROR), 2066 addr_type = 'ADDR_OTHER', 2067 func = 'ex_ptag', 2068 }, 2069 { 2070 command = 'ptfirst', 2071 flags = bit.bor(RANGE, BANG, TRLBAR, ZEROR), 2072 addr_type = 'ADDR_OTHER', 2073 func = 'ex_ptag', 2074 }, 2075 { 2076 command = 'ptjump', 2077 flags = bit.bor(BANG, TRLBAR, WORD1), 2078 addr_type = 'ADDR_NONE', 2079 func = 'ex_ptag', 2080 }, 2081 { 2082 command = 'ptlast', 2083 flags = bit.bor(BANG, TRLBAR), 2084 addr_type = 'ADDR_NONE', 2085 func = 'ex_ptag', 2086 }, 2087 { 2088 command = 'ptnext', 2089 flags = bit.bor(RANGE, BANG, TRLBAR, ZEROR), 2090 addr_type = 'ADDR_OTHER', 2091 func = 'ex_ptag', 2092 }, 2093 { 2094 command = 'ptprevious', 2095 flags = bit.bor(RANGE, BANG, TRLBAR, ZEROR), 2096 addr_type = 'ADDR_OTHER', 2097 func = 'ex_ptag', 2098 }, 2099 { 2100 command = 'ptrewind', 2101 flags = bit.bor(RANGE, BANG, TRLBAR, ZEROR), 2102 addr_type = 'ADDR_OTHER', 2103 func = 'ex_ptag', 2104 }, 2105 { 2106 command = 'ptselect', 2107 flags = bit.bor(BANG, TRLBAR, WORD1), 2108 addr_type = 'ADDR_NONE', 2109 func = 'ex_ptag', 2110 }, 2111 { 2112 command = 'put', 2113 flags = bit.bor(RANGE, WHOLEFOLD, BANG, REGSTR, TRLBAR, ZEROR, CMDWIN, LOCK_OK, MODIFY), 2114 addr_type = 'ADDR_LINES', 2115 func = 'ex_put', 2116 }, 2117 { 2118 command = 'pwd', 2119 flags = bit.bor(TRLBAR, CMDWIN, LOCK_OK), 2120 addr_type = 'ADDR_NONE', 2121 func = 'ex_pwd', 2122 }, 2123 { 2124 command = 'python', 2125 flags = bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, LOCK_OK), 2126 addr_type = 'ADDR_LINES', 2127 func = 'ex_python3', 2128 }, 2129 { 2130 command = 'pydo', 2131 flags = bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN, LOCK_OK), 2132 addr_type = 'ADDR_LINES', 2133 func = 'ex_pydo3', 2134 }, 2135 { 2136 command = 'pyfile', 2137 flags = bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, LOCK_OK), 2138 addr_type = 'ADDR_LINES', 2139 func = 'ex_py3file', 2140 }, 2141 { 2142 command = 'py3', 2143 flags = bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, LOCK_OK), 2144 addr_type = 'ADDR_LINES', 2145 func = 'ex_python3', 2146 }, 2147 { 2148 command = 'py3do', 2149 flags = bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN, LOCK_OK), 2150 addr_type = 'ADDR_LINES', 2151 func = 'ex_pydo3', 2152 }, 2153 { 2154 command = 'python3', 2155 flags = bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, LOCK_OK), 2156 addr_type = 'ADDR_LINES', 2157 func = 'ex_python3', 2158 }, 2159 { 2160 command = 'py3file', 2161 flags = bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, LOCK_OK), 2162 addr_type = 'ADDR_LINES', 2163 func = 'ex_py3file', 2164 }, 2165 { 2166 command = 'pyx', 2167 flags = bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, LOCK_OK), 2168 addr_type = 'ADDR_LINES', 2169 func = 'ex_python3', 2170 }, 2171 { 2172 command = 'pyxdo', 2173 flags = bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN, LOCK_OK), 2174 addr_type = 'ADDR_LINES', 2175 func = 'ex_pydo3', 2176 }, 2177 { 2178 command = 'pythonx', 2179 flags = bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, LOCK_OK), 2180 addr_type = 'ADDR_LINES', 2181 func = 'ex_python3', 2182 }, 2183 { 2184 command = 'pyxfile', 2185 flags = bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, LOCK_OK), 2186 addr_type = 'ADDR_LINES', 2187 func = 'ex_py3file', 2188 }, 2189 { 2190 command = 'quit', 2191 flags = bit.bor(BANG, RANGE, COUNT, TRLBAR, CMDWIN, LOCK_OK), 2192 addr_type = 'ADDR_WINDOWS', 2193 func = 'ex_quit', 2194 }, 2195 { 2196 command = 'quitall', 2197 flags = bit.bor(BANG, TRLBAR), 2198 addr_type = 'ADDR_NONE', 2199 func = 'ex_quitall', 2200 }, 2201 { 2202 command = 'qall', 2203 flags = bit.bor(BANG, TRLBAR, CMDWIN, LOCK_OK), 2204 addr_type = 'ADDR_NONE', 2205 func = 'ex_quitall', 2206 }, 2207 { 2208 command = 'read', 2209 flags = bit.bor(BANG, RANGE, WHOLEFOLD, FILE1, ARGOPT, TRLBAR, ZEROR, CMDWIN, LOCK_OK, MODIFY), 2210 addr_type = 'ADDR_LINES', 2211 func = 'ex_read', 2212 }, 2213 { 2214 command = 'recover', 2215 flags = bit.bor(BANG, FILE1, TRLBAR), 2216 addr_type = 'ADDR_NONE', 2217 func = 'ex_recover', 2218 }, 2219 { 2220 command = 'redo', 2221 flags = bit.bor(TRLBAR, CMDWIN, LOCK_OK), 2222 addr_type = 'ADDR_NONE', 2223 func = 'ex_redo', 2224 }, 2225 { 2226 command = 'redir', 2227 flags = bit.bor(BANG, FILES, TRLBAR, CMDWIN, LOCK_OK), 2228 addr_type = 'ADDR_NONE', 2229 func = 'ex_redir', 2230 }, 2231 { 2232 command = 'redraw', 2233 flags = bit.bor(BANG, TRLBAR, CMDWIN, LOCK_OK), 2234 addr_type = 'ADDR_NONE', 2235 func = 'ex_redraw', 2236 }, 2237 { 2238 command = 'redrawstatus', 2239 flags = bit.bor(BANG, TRLBAR, CMDWIN, LOCK_OK), 2240 addr_type = 'ADDR_NONE', 2241 func = 'ex_redrawstatus', 2242 }, 2243 { 2244 command = 'redrawtabline', 2245 flags = bit.bor(TRLBAR, CMDWIN, LOCK_OK), 2246 addr_type = 'ADDR_NONE', 2247 func = 'ex_redrawtabline', 2248 }, 2249 { 2250 command = 'registers', 2251 flags = bit.bor(EXTRA, NOTRLCOM, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 2252 addr_type = 'ADDR_NONE', 2253 func = 'ex_display', 2254 }, 2255 { 2256 command = 'resize', 2257 flags = bit.bor(RANGE, TRLBAR, WORD1, CMDWIN, LOCK_OK), 2258 addr_type = 'ADDR_OTHER', 2259 func = 'ex_resize', 2260 }, 2261 { 2262 command = 'restart', 2263 flags = bit.bor(CMDARG, EXTRA, NOTRLCOM), 2264 addr_type = 'ADDR_NONE', 2265 func = 'ex_restart', 2266 }, 2267 { 2268 command = 'retab', 2269 flags = bit.bor(TRLBAR, RANGE, WHOLEFOLD, DFLALL, BANG, WORD1, CMDWIN, LOCK_OK, MODIFY), 2270 addr_type = 'ADDR_LINES', 2271 func = 'ex_retab', 2272 }, 2273 { 2274 command = 'return', 2275 flags = bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 2276 addr_type = 'ADDR_NONE', 2277 func = 'ex_return', 2278 }, 2279 { 2280 command = 'rewind', 2281 flags = bit.bor(EXTRA, BANG, CMDARG, ARGOPT, TRLBAR), 2282 addr_type = 'ADDR_NONE', 2283 func = 'ex_rewind', 2284 }, 2285 { 2286 command = 'right', 2287 flags = bit.bor(TRLBAR, RANGE, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK, MODIFY), 2288 addr_type = 'ADDR_LINES', 2289 func = 'ex_align', 2290 }, 2291 { 2292 command = 'rightbelow', 2293 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM), 2294 addr_type = 'ADDR_NONE', 2295 func = 'ex_wrongmodifier', 2296 }, 2297 { 2298 command = 'rshada', 2299 flags = bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), 2300 addr_type = 'ADDR_NONE', 2301 func = 'ex_shada', 2302 }, 2303 { 2304 command = 'runtime', 2305 flags = bit.bor(BANG, NEEDARG, FILES, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 2306 addr_type = 'ADDR_NONE', 2307 func = 'ex_runtime', 2308 }, 2309 { 2310 command = 'rundo', 2311 flags = bit.bor(NEEDARG, FILE1), 2312 addr_type = 'ADDR_NONE', 2313 func = 'ex_rundo', 2314 }, 2315 { 2316 command = 'ruby', 2317 flags = bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, LOCK_OK), 2318 addr_type = 'ADDR_LINES', 2319 func = 'ex_ruby', 2320 }, 2321 { 2322 command = 'rubydo', 2323 flags = bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN, LOCK_OK), 2324 addr_type = 'ADDR_LINES', 2325 func = 'ex_rubydo', 2326 }, 2327 { 2328 command = 'rubyfile', 2329 flags = bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, LOCK_OK), 2330 addr_type = 'ADDR_LINES', 2331 func = 'ex_rubyfile', 2332 }, 2333 { 2334 command = 'rviminfo', 2335 flags = bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), 2336 addr_type = 'ADDR_NONE', 2337 func = 'ex_shada', 2338 }, 2339 { 2340 command = 'substitute', 2341 flags = bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK, PREVIEW), 2342 addr_type = 'ADDR_LINES', 2343 func = 'ex_substitute', 2344 preview_func = 'ex_substitute_preview', 2345 }, 2346 { 2347 command = 'sNext', 2348 flags = bit.bor(EXTRA, RANGE, COUNT, BANG, CMDARG, ARGOPT, TRLBAR), 2349 addr_type = 'ADDR_OTHER', 2350 func = 'ex_previous', 2351 }, 2352 { 2353 command = 'sargument', 2354 flags = bit.bor(BANG, RANGE, COUNT, EXTRA, CMDARG, ARGOPT, TRLBAR), 2355 addr_type = 'ADDR_ARGUMENTS', 2356 func = 'ex_argument', 2357 }, 2358 { 2359 command = 'sall', 2360 flags = bit.bor(BANG, RANGE, COUNT, TRLBAR), 2361 addr_type = 'ADDR_OTHER', 2362 func = 'ex_all', 2363 }, 2364 { 2365 command = 'sandbox', 2366 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM), 2367 addr_type = 'ADDR_NONE', 2368 func = 'ex_wrongmodifier', 2369 }, 2370 { 2371 command = 'saveas', 2372 flags = bit.bor(BANG, FILE1, ARGOPT, CMDWIN, LOCK_OK, TRLBAR), 2373 addr_type = 'ADDR_NONE', 2374 func = 'ex_write', 2375 }, 2376 { 2377 command = 'sbuffer', 2378 flags = bit.bor(BANG, RANGE, BUFNAME, BUFUNL, COUNT, EXTRA, CMDARG, TRLBAR), 2379 addr_type = 'ADDR_BUFFERS', 2380 func = 'ex_buffer', 2381 }, 2382 { 2383 command = 'sbNext', 2384 flags = bit.bor(RANGE, COUNT, CMDARG, TRLBAR), 2385 addr_type = 'ADDR_OTHER', 2386 func = 'ex_bprevious', 2387 }, 2388 { 2389 command = 'sball', 2390 flags = bit.bor(RANGE, COUNT, CMDARG, TRLBAR), 2391 addr_type = 'ADDR_OTHER', 2392 func = 'ex_buffer_all', 2393 }, 2394 { 2395 command = 'sbfirst', 2396 flags = bit.bor(CMDARG, TRLBAR), 2397 addr_type = 'ADDR_NONE', 2398 func = 'ex_brewind', 2399 }, 2400 { 2401 command = 'sblast', 2402 flags = bit.bor(CMDARG, TRLBAR), 2403 addr_type = 'ADDR_NONE', 2404 func = 'ex_blast', 2405 }, 2406 { 2407 command = 'sbmodified', 2408 flags = bit.bor(RANGE, COUNT, CMDARG, TRLBAR), 2409 addr_type = 'ADDR_OTHER', 2410 func = 'ex_bmodified', 2411 }, 2412 { 2413 command = 'sbnext', 2414 flags = bit.bor(RANGE, COUNT, CMDARG, TRLBAR), 2415 addr_type = 'ADDR_OTHER', 2416 func = 'ex_bnext', 2417 }, 2418 { 2419 command = 'sbprevious', 2420 flags = bit.bor(RANGE, COUNT, CMDARG, TRLBAR), 2421 addr_type = 'ADDR_OTHER', 2422 func = 'ex_bprevious', 2423 }, 2424 { 2425 command = 'sbrewind', 2426 flags = bit.bor(CMDARG, TRLBAR), 2427 addr_type = 'ADDR_NONE', 2428 func = 'ex_brewind', 2429 }, 2430 { 2431 command = 'scriptnames', 2432 flags = bit.bor(BANG, FILES, RANGE, COUNT, TRLBAR, CMDWIN, LOCK_OK), 2433 addr_type = 'ADDR_OTHER', 2434 func = 'ex_scriptnames', 2435 }, 2436 { 2437 command = 'scriptencoding', 2438 flags = bit.bor(WORD1, TRLBAR, CMDWIN, LOCK_OK), 2439 addr_type = 'ADDR_NONE', 2440 func = 'ex_scriptencoding', 2441 }, 2442 { 2443 command = 'set', 2444 flags = bit.bor(BANG, TRLBAR, EXTRA, CMDWIN, LOCK_OK, SBOXOK), 2445 addr_type = 'ADDR_NONE', 2446 func = 'ex_set', 2447 }, 2448 { 2449 command = 'setfiletype', 2450 flags = bit.bor(TRLBAR, EXTRA, NEEDARG, CMDWIN, LOCK_OK), 2451 addr_type = 'ADDR_NONE', 2452 func = 'ex_setfiletype', 2453 }, 2454 { 2455 command = 'setglobal', 2456 flags = bit.bor(BANG, TRLBAR, EXTRA, CMDWIN, LOCK_OK, SBOXOK), 2457 addr_type = 'ADDR_NONE', 2458 func = 'ex_set', 2459 }, 2460 { 2461 command = 'setlocal', 2462 flags = bit.bor(BANG, TRLBAR, EXTRA, CMDWIN, LOCK_OK, SBOXOK), 2463 addr_type = 'ADDR_NONE', 2464 func = 'ex_set', 2465 }, 2466 { 2467 command = 'sfind', 2468 flags = bit.bor(BANG, FILE1, RANGE, CMDARG, ARGOPT, TRLBAR, NEEDARG), 2469 addr_type = 'ADDR_OTHER', 2470 func = 'ex_splitview', 2471 }, 2472 { 2473 command = 'sfirst', 2474 flags = bit.bor(EXTRA, BANG, CMDARG, ARGOPT, TRLBAR), 2475 addr_type = 'ADDR_NONE', 2476 func = 'ex_rewind', 2477 }, 2478 { 2479 command = 'simalt', 2480 flags = bit.bor(NEEDARG, WORD1, TRLBAR, CMDWIN, LOCK_OK), 2481 addr_type = 'ADDR_NONE', 2482 func = 'ex_ni', 2483 }, 2484 { 2485 command = 'sign', 2486 flags = bit.bor(NEEDARG, RANGE, EXTRA, CMDWIN, LOCK_OK), 2487 addr_type = 'ADDR_OTHER', 2488 func = 'ex_sign', 2489 }, 2490 { 2491 command = 'silent', 2492 flags = bit.bor(NEEDARG, EXTRA, BANG, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 2493 addr_type = 'ADDR_NONE', 2494 func = 'ex_wrongmodifier', 2495 }, 2496 { 2497 command = 'sleep', 2498 flags = bit.bor(BANG, RANGE, COUNT, EXTRA, TRLBAR, CMDWIN, LOCK_OK), 2499 addr_type = 'ADDR_OTHER', 2500 func = 'ex_sleep', 2501 }, 2502 { 2503 command = 'slast', 2504 flags = bit.bor(EXTRA, BANG, CMDARG, ARGOPT, TRLBAR), 2505 addr_type = 'ADDR_NONE', 2506 func = 'ex_last', 2507 }, 2508 { 2509 command = 'smagic', 2510 flags = bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK, PREVIEW), 2511 addr_type = 'ADDR_LINES', 2512 func = 'ex_submagic', 2513 preview_func = 'ex_submagic_preview', 2514 }, 2515 { 2516 command = 'smap', 2517 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 2518 addr_type = 'ADDR_NONE', 2519 func = 'ex_map', 2520 }, 2521 { 2522 command = 'smapclear', 2523 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 2524 addr_type = 'ADDR_NONE', 2525 func = 'ex_mapclear', 2526 }, 2527 { 2528 command = 'smenu', 2529 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 2530 addr_type = 'ADDR_OTHER', 2531 func = 'ex_menu', 2532 }, 2533 { 2534 command = 'snext', 2535 flags = bit.bor(RANGE, BANG, FILES, CMDARG, ARGOPT, TRLBAR), 2536 addr_type = 'ADDR_OTHER', 2537 func = 'ex_next', 2538 }, 2539 { 2540 command = 'snomagic', 2541 flags = bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK, PREVIEW), 2542 addr_type = 'ADDR_LINES', 2543 func = 'ex_submagic', 2544 preview_func = 'ex_submagic_preview', 2545 }, 2546 { 2547 command = 'snoremap', 2548 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 2549 addr_type = 'ADDR_NONE', 2550 func = 'ex_map', 2551 }, 2552 { 2553 command = 'snoremenu', 2554 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 2555 addr_type = 'ADDR_OTHER', 2556 func = 'ex_menu', 2557 }, 2558 { 2559 command = 'source', 2560 flags = bit.bor(RANGE, DFLALL, BANG, FILE1, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 2561 addr_type = 'ADDR_LINES', 2562 func = 'ex_source', 2563 }, 2564 { 2565 command = 'sort', 2566 flags = bit.bor(RANGE, DFLALL, WHOLEFOLD, BANG, EXTRA, NOTRLCOM, MODIFY), 2567 addr_type = 'ADDR_LINES', 2568 func = 'ex_sort', 2569 }, 2570 { 2571 command = 'split', 2572 flags = bit.bor(BANG, FILE1, RANGE, CMDARG, ARGOPT, TRLBAR), 2573 addr_type = 'ADDR_OTHER', 2574 func = 'ex_splitview', 2575 }, 2576 { 2577 command = 'spellgood', 2578 flags = bit.bor(BANG, RANGE, NEEDARG, EXTRA, TRLBAR), 2579 addr_type = 'ADDR_OTHER', 2580 func = 'ex_spell', 2581 }, 2582 { 2583 command = 'spelldump', 2584 flags = bit.bor(BANG, TRLBAR), 2585 addr_type = 'ADDR_NONE', 2586 func = 'ex_spelldump', 2587 }, 2588 { 2589 command = 'spellinfo', 2590 flags = bit.bor(TRLBAR), 2591 addr_type = 'ADDR_NONE', 2592 func = 'ex_spellinfo', 2593 }, 2594 { 2595 command = 'spellrepall', 2596 flags = bit.bor(TRLBAR), 2597 addr_type = 'ADDR_NONE', 2598 func = 'ex_spellrepall', 2599 }, 2600 { 2601 command = 'spellrare', 2602 flags = bit.bor(BANG, RANGE, NEEDARG, EXTRA, TRLBAR), 2603 addr_type = 'ADDR_OTHER', 2604 func = 'ex_spell', 2605 }, 2606 { 2607 command = 'spellundo', 2608 flags = bit.bor(BANG, RANGE, NEEDARG, EXTRA, TRLBAR), 2609 addr_type = 'ADDR_OTHER', 2610 func = 'ex_spell', 2611 }, 2612 { 2613 command = 'spellwrong', 2614 flags = bit.bor(BANG, RANGE, NEEDARG, EXTRA, TRLBAR), 2615 addr_type = 'ADDR_OTHER', 2616 func = 'ex_spell', 2617 }, 2618 { 2619 command = 'sprevious', 2620 flags = bit.bor(EXTRA, RANGE, COUNT, BANG, CMDARG, ARGOPT, TRLBAR), 2621 addr_type = 'ADDR_OTHER', 2622 func = 'ex_previous', 2623 }, 2624 { 2625 command = 'srewind', 2626 flags = bit.bor(EXTRA, BANG, CMDARG, ARGOPT, TRLBAR), 2627 addr_type = 'ADDR_NONE', 2628 func = 'ex_rewind', 2629 }, 2630 { 2631 command = 'stop', 2632 flags = bit.bor(TRLBAR, BANG, CMDWIN, LOCK_OK), 2633 addr_type = 'ADDR_NONE', 2634 func = 'ex_stop', 2635 }, 2636 { 2637 command = 'stag', 2638 flags = bit.bor(RANGE, BANG, WORD1, TRLBAR, ZEROR), 2639 addr_type = 'ADDR_OTHER', 2640 func = 'ex_stag', 2641 }, 2642 { 2643 command = 'startinsert', 2644 flags = bit.bor(BANG, TRLBAR, CMDWIN, LOCK_OK), 2645 addr_type = 'ADDR_NONE', 2646 func = 'ex_startinsert', 2647 }, 2648 { 2649 command = 'startgreplace', 2650 flags = bit.bor(BANG, TRLBAR, CMDWIN, LOCK_OK), 2651 addr_type = 'ADDR_NONE', 2652 func = 'ex_startinsert', 2653 }, 2654 { 2655 command = 'startreplace', 2656 flags = bit.bor(BANG, TRLBAR, CMDWIN, LOCK_OK), 2657 addr_type = 'ADDR_NONE', 2658 func = 'ex_startinsert', 2659 }, 2660 { 2661 command = 'stopinsert', 2662 flags = bit.bor(BANG, TRLBAR, CMDWIN, LOCK_OK), 2663 addr_type = 'ADDR_NONE', 2664 func = 'ex_stopinsert', 2665 }, 2666 { 2667 command = 'stjump', 2668 flags = bit.bor(BANG, TRLBAR, WORD1), 2669 addr_type = 'ADDR_NONE', 2670 func = 'ex_stag', 2671 }, 2672 { 2673 command = 'stselect', 2674 flags = bit.bor(BANG, TRLBAR, WORD1), 2675 addr_type = 'ADDR_NONE', 2676 func = 'ex_stag', 2677 }, 2678 { 2679 command = 'sunhide', 2680 flags = bit.bor(RANGE, COUNT, TRLBAR), 2681 addr_type = 'ADDR_OTHER', 2682 func = 'ex_buffer_all', 2683 }, 2684 { 2685 command = 'sunmap', 2686 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 2687 addr_type = 'ADDR_NONE', 2688 func = 'ex_unmap', 2689 }, 2690 { 2691 command = 'sunmenu', 2692 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 2693 addr_type = 'ADDR_NONE', 2694 func = 'ex_menu', 2695 }, 2696 { 2697 command = 'suspend', 2698 flags = bit.bor(TRLBAR, BANG, CMDWIN, LOCK_OK), 2699 addr_type = 'ADDR_NONE', 2700 func = 'ex_stop', 2701 }, 2702 { 2703 command = 'sview', 2704 flags = bit.bor(BANG, FILE1, RANGE, CMDARG, ARGOPT, TRLBAR), 2705 addr_type = 'ADDR_OTHER', 2706 func = 'ex_splitview', 2707 }, 2708 { 2709 command = 'swapname', 2710 flags = bit.bor(TRLBAR, CMDWIN, LOCK_OK), 2711 addr_type = 'ADDR_NONE', 2712 func = 'ex_swapname', 2713 }, 2714 { 2715 command = 'syntax', 2716 flags = bit.bor(EXTRA, NOTRLCOM, CMDWIN, LOCK_OK), 2717 addr_type = 'ADDR_NONE', 2718 func = 'ex_syntax', 2719 }, 2720 { 2721 command = 'syntime', 2722 flags = bit.bor(NEEDARG, WORD1, TRLBAR, CMDWIN, LOCK_OK), 2723 addr_type = 'ADDR_NONE', 2724 func = 'ex_syntime', 2725 }, 2726 { 2727 command = 'syncbind', 2728 flags = bit.bor(TRLBAR), 2729 addr_type = 'ADDR_NONE', 2730 func = 'ex_syncbind', 2731 }, 2732 { 2733 command = 't', 2734 flags = bit.bor(RANGE, WHOLEFOLD, EXTRA, TRLBAR, CMDWIN, LOCK_OK, MODIFY), 2735 addr_type = 'ADDR_LINES', 2736 func = 'ex_copymove', 2737 }, 2738 { 2739 command = 'tcd', 2740 flags = bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), 2741 addr_type = 'ADDR_NONE', 2742 func = 'ex_cd', 2743 }, 2744 { 2745 command = 'tchdir', 2746 flags = bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), 2747 addr_type = 'ADDR_NONE', 2748 func = 'ex_cd', 2749 }, 2750 { 2751 command = 'tNext', 2752 flags = bit.bor(RANGE, BANG, TRLBAR, ZEROR), 2753 addr_type = 'ADDR_OTHER', 2754 func = 'ex_tag', 2755 }, 2756 { 2757 command = 'tag', 2758 flags = bit.bor(RANGE, BANG, WORD1, TRLBAR, ZEROR), 2759 addr_type = 'ADDR_OTHER', 2760 func = 'ex_tag', 2761 }, 2762 { 2763 command = 'tags', 2764 flags = bit.bor(TRLBAR, CMDWIN, LOCK_OK), 2765 addr_type = 'ADDR_NONE', 2766 func = 'do_tags', 2767 }, 2768 { 2769 command = 'tab', 2770 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM), 2771 addr_type = 'ADDR_NONE', 2772 func = 'ex_wrongmodifier', 2773 }, 2774 { 2775 command = 'tabclose', 2776 flags = bit.bor(BANG, RANGE, ZEROR, EXTRA, NOSPC, TRLBAR, CMDWIN, LOCK_OK), 2777 addr_type = 'ADDR_TABS', 2778 func = 'ex_tabclose', 2779 }, 2780 { 2781 command = 'tabdo', 2782 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM, RANGE, DFLALL), 2783 addr_type = 'ADDR_TABS', 2784 func = 'ex_listdo', 2785 }, 2786 { 2787 command = 'tabedit', 2788 flags = bit.bor(BANG, FILE1, RANGE, ZEROR, CMDARG, ARGOPT, TRLBAR), 2789 addr_type = 'ADDR_TABS', 2790 func = 'ex_splitview', 2791 }, 2792 { 2793 command = 'tabfind', 2794 flags = bit.bor(BANG, FILE1, RANGE, ZEROR, CMDARG, ARGOPT, NEEDARG, TRLBAR), 2795 addr_type = 'ADDR_TABS', 2796 func = 'ex_splitview', 2797 }, 2798 { 2799 command = 'tabfirst', 2800 flags = bit.bor(TRLBAR), 2801 addr_type = 'ADDR_NONE', 2802 func = 'ex_tabnext', 2803 }, 2804 { 2805 command = 'tabmove', 2806 flags = bit.bor(RANGE, ZEROR, EXTRA, NOSPC, TRLBAR), 2807 addr_type = 'ADDR_TABS', 2808 func = 'ex_tabmove', 2809 }, 2810 { 2811 command = 'tablast', 2812 flags = bit.bor(TRLBAR), 2813 addr_type = 'ADDR_NONE', 2814 func = 'ex_tabnext', 2815 }, 2816 { 2817 command = 'tabnext', 2818 flags = bit.bor(RANGE, ZEROR, EXTRA, NOSPC, TRLBAR), 2819 addr_type = 'ADDR_TABS', 2820 func = 'ex_tabnext', 2821 }, 2822 { 2823 command = 'tabnew', 2824 flags = bit.bor(BANG, FILE1, RANGE, ZEROR, CMDARG, ARGOPT, TRLBAR), 2825 addr_type = 'ADDR_TABS', 2826 func = 'ex_splitview', 2827 }, 2828 { 2829 command = 'tabonly', 2830 flags = bit.bor(BANG, RANGE, ZEROR, EXTRA, NOSPC, TRLBAR, CMDWIN, LOCK_OK), 2831 addr_type = 'ADDR_TABS', 2832 func = 'ex_tabonly', 2833 }, 2834 { 2835 command = 'tabprevious', 2836 flags = bit.bor(RANGE, ZEROR, EXTRA, NOSPC, TRLBAR), 2837 addr_type = 'ADDR_TABS_RELATIVE', 2838 func = 'ex_tabnext', 2839 }, 2840 { 2841 command = 'tabNext', 2842 flags = bit.bor(RANGE, ZEROR, EXTRA, NOSPC, TRLBAR), 2843 addr_type = 'ADDR_TABS_RELATIVE', 2844 func = 'ex_tabnext', 2845 }, 2846 { 2847 command = 'tabrewind', 2848 flags = bit.bor(TRLBAR), 2849 addr_type = 'ADDR_NONE', 2850 func = 'ex_tabnext', 2851 }, 2852 { 2853 command = 'tabs', 2854 flags = bit.bor(TRLBAR, CMDWIN, LOCK_OK), 2855 addr_type = 'ADDR_NONE', 2856 func = 'ex_tabs', 2857 }, 2858 { 2859 command = 'tcl', 2860 flags = bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, LOCK_OK), 2861 addr_type = 'ADDR_LINES', 2862 func = 'ex_script_ni', 2863 }, 2864 { 2865 command = 'tcldo', 2866 flags = bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN, LOCK_OK), 2867 addr_type = 'ADDR_LINES', 2868 func = 'ex_ni', 2869 }, 2870 { 2871 command = 'tclfile', 2872 flags = bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, LOCK_OK), 2873 addr_type = 'ADDR_LINES', 2874 func = 'ex_ni', 2875 }, 2876 { 2877 command = 'terminal', 2878 flags = bit.bor(BANG, FILES, CMDWIN, LOCK_OK), 2879 addr_type = 'ADDR_NONE', 2880 func = 'ex_terminal', 2881 }, 2882 { 2883 command = 'tfirst', 2884 flags = bit.bor(RANGE, BANG, TRLBAR, ZEROR), 2885 addr_type = 'ADDR_OTHER', 2886 func = 'ex_tag', 2887 }, 2888 { 2889 command = 'throw', 2890 flags = bit.bor(EXTRA, NEEDARG, SBOXOK, CMDWIN, LOCK_OK), 2891 addr_type = 'ADDR_NONE', 2892 func = 'ex_throw', 2893 }, 2894 { 2895 command = 'tjump', 2896 flags = bit.bor(BANG, TRLBAR, WORD1), 2897 addr_type = 'ADDR_NONE', 2898 func = 'ex_tag', 2899 }, 2900 { 2901 command = 'tlast', 2902 flags = bit.bor(BANG, TRLBAR), 2903 addr_type = 'ADDR_NONE', 2904 func = 'ex_tag', 2905 }, 2906 { 2907 command = 'tlmenu', 2908 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 2909 addr_type = 'ADDR_OTHER', 2910 func = 'ex_menu', 2911 }, 2912 { 2913 command = 'tlnoremenu', 2914 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 2915 addr_type = 'ADDR_OTHER', 2916 func = 'ex_menu', 2917 }, 2918 { 2919 command = 'tlunmenu', 2920 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 2921 addr_type = 'ADDR_NONE', 2922 func = 'ex_menu', 2923 }, 2924 { 2925 command = 'tmenu', 2926 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 2927 addr_type = 'ADDR_OTHER', 2928 func = 'ex_menu', 2929 }, 2930 { 2931 command = 'tmap', 2932 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 2933 addr_type = 'ADDR_NONE', 2934 func = 'ex_map', 2935 }, 2936 { 2937 command = 'tmapclear', 2938 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 2939 addr_type = 'ADDR_NONE', 2940 func = 'ex_mapclear', 2941 }, 2942 { 2943 command = 'tnext', 2944 flags = bit.bor(RANGE, BANG, TRLBAR, ZEROR), 2945 addr_type = 'ADDR_OTHER', 2946 func = 'ex_tag', 2947 }, 2948 { 2949 command = 'tnoremap', 2950 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 2951 addr_type = 'ADDR_NONE', 2952 func = 'ex_map', 2953 }, 2954 { 2955 command = 'topleft', 2956 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM), 2957 addr_type = 'ADDR_NONE', 2958 func = 'ex_wrongmodifier', 2959 }, 2960 { 2961 command = 'tprevious', 2962 flags = bit.bor(RANGE, BANG, TRLBAR, ZEROR), 2963 addr_type = 'ADDR_OTHER', 2964 func = 'ex_tag', 2965 }, 2966 { 2967 command = 'trewind', 2968 flags = bit.bor(RANGE, BANG, TRLBAR, ZEROR), 2969 addr_type = 'ADDR_OTHER', 2970 func = 'ex_tag', 2971 }, 2972 { 2973 command = 'trust', 2974 flags = bit.bor(EXTRA, FILE1, TRLBAR, LOCK_OK), 2975 addr_type = 'ADDR_NONE', 2976 func = 'ex_trust', 2977 }, 2978 { 2979 command = 'try', 2980 flags = bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), 2981 addr_type = 'ADDR_NONE', 2982 func = 'ex_try', 2983 }, 2984 { 2985 command = 'tselect', 2986 flags = bit.bor(BANG, TRLBAR, WORD1), 2987 addr_type = 'ADDR_NONE', 2988 func = 'ex_tag', 2989 }, 2990 { 2991 command = 'tunmenu', 2992 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 2993 addr_type = 'ADDR_NONE', 2994 func = 'ex_menu', 2995 }, 2996 { 2997 command = 'tunmap', 2998 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 2999 addr_type = 'ADDR_NONE', 3000 func = 'ex_unmap', 3001 }, 3002 { 3003 command = 'undo', 3004 flags = bit.bor(BANG, RANGE, COUNT, ZEROR, TRLBAR, CMDWIN, LOCK_OK), 3005 addr_type = 'ADDR_OTHER', 3006 func = 'ex_undo', 3007 }, 3008 { 3009 command = 'undojoin', 3010 flags = bit.bor(TRLBAR, CMDWIN, LOCK_OK), 3011 addr_type = 'ADDR_NONE', 3012 func = 'ex_undojoin', 3013 }, 3014 { 3015 command = 'undolist', 3016 flags = bit.bor(TRLBAR, CMDWIN, LOCK_OK), 3017 addr_type = 'ADDR_NONE', 3018 func = 'ex_undolist', 3019 }, 3020 { 3021 command = 'unabbreviate', 3022 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 3023 addr_type = 'ADDR_NONE', 3024 func = 'ex_abbreviate', 3025 }, 3026 { 3027 command = 'unhide', 3028 flags = bit.bor(RANGE, COUNT, TRLBAR), 3029 addr_type = 'ADDR_OTHER', 3030 func = 'ex_buffer_all', 3031 }, 3032 { 3033 command = 'uniq', 3034 flags = bit.bor(RANGE, DFLALL, WHOLEFOLD, BANG, EXTRA, NOTRLCOM, MODIFY), 3035 addr_type = 'ADDR_LINES', 3036 func = 'ex_uniq', 3037 }, 3038 { 3039 command = 'unlet', 3040 flags = bit.bor(BANG, EXTRA, NEEDARG, SBOXOK, CMDWIN, LOCK_OK), 3041 addr_type = 'ADDR_NONE', 3042 func = 'ex_unlet', 3043 }, 3044 { 3045 command = 'unlockvar', 3046 flags = bit.bor(BANG, EXTRA, NEEDARG, SBOXOK, CMDWIN, LOCK_OK), 3047 addr_type = 'ADDR_NONE', 3048 func = 'ex_lockvar', 3049 }, 3050 { 3051 command = 'unmap', 3052 flags = bit.bor(BANG, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 3053 addr_type = 'ADDR_NONE', 3054 func = 'ex_unmap', 3055 }, 3056 { 3057 command = 'unmenu', 3058 flags = bit.bor(BANG, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 3059 addr_type = 'ADDR_NONE', 3060 func = 'ex_menu', 3061 }, 3062 { 3063 command = 'unsilent', 3064 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 3065 addr_type = 'ADDR_NONE', 3066 func = 'ex_wrongmodifier', 3067 }, 3068 { 3069 command = 'update', 3070 flags = bit.bor(RANGE, WHOLEFOLD, BANG, FILE1, ARGOPT, DFLALL, TRLBAR), 3071 addr_type = 'ADDR_LINES', 3072 func = 'ex_update', 3073 }, 3074 { 3075 command = 'vglobal', 3076 flags = bit.bor(RANGE, WHOLEFOLD, EXTRA, DFLALL, CMDWIN, LOCK_OK), 3077 addr_type = 'ADDR_LINES', 3078 func = 'ex_global', 3079 }, 3080 { 3081 command = 'version', 3082 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 3083 addr_type = 'ADDR_NONE', 3084 func = 'ex_version', 3085 }, 3086 { 3087 command = 'verbose', 3088 flags = bit.bor(NEEDARG, RANGE, EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 3089 addr_type = 'ADDR_OTHER', 3090 func = 'ex_wrongmodifier', 3091 }, 3092 { 3093 command = 'vertical', 3094 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM), 3095 addr_type = 'ADDR_NONE', 3096 func = 'ex_wrongmodifier', 3097 }, 3098 { 3099 command = 'visual', 3100 flags = bit.bor(BANG, FILE1, CMDARG, ARGOPT, TRLBAR), 3101 addr_type = 'ADDR_NONE', 3102 func = 'ex_edit', 3103 }, 3104 { 3105 command = 'view', 3106 flags = bit.bor(BANG, FILE1, CMDARG, ARGOPT, TRLBAR), 3107 addr_type = 'ADDR_NONE', 3108 func = 'ex_edit', 3109 }, 3110 { 3111 command = 'vimgrep', 3112 flags = bit.bor(RANGE, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE, LOCK_OK), 3113 addr_type = 'ADDR_OTHER', 3114 func = 'ex_vimgrep', 3115 }, 3116 { 3117 command = 'vimgrepadd', 3118 flags = bit.bor(RANGE, BANG, NEEDARG, EXTRA, NOTRLCOM, TRLBAR, XFILE, LOCK_OK), 3119 addr_type = 'ADDR_OTHER', 3120 func = 'ex_vimgrep', 3121 }, 3122 { 3123 command = 'viusage', 3124 flags = bit.bor(TRLBAR), 3125 addr_type = 'ADDR_NONE', 3126 func = 'ex_viusage', 3127 }, 3128 { 3129 command = 'vmap', 3130 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 3131 addr_type = 'ADDR_NONE', 3132 func = 'ex_map', 3133 }, 3134 { 3135 command = 'vmapclear', 3136 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 3137 addr_type = 'ADDR_NONE', 3138 func = 'ex_mapclear', 3139 }, 3140 { 3141 command = 'vmenu', 3142 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 3143 addr_type = 'ADDR_OTHER', 3144 func = 'ex_menu', 3145 }, 3146 { 3147 command = 'vnoremap', 3148 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 3149 addr_type = 'ADDR_NONE', 3150 func = 'ex_map', 3151 }, 3152 { 3153 command = 'vnew', 3154 flags = bit.bor(BANG, FILE1, RANGE, CMDARG, ARGOPT, TRLBAR), 3155 addr_type = 'ADDR_OTHER', 3156 func = 'ex_splitview', 3157 }, 3158 { 3159 command = 'vnoremenu', 3160 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 3161 addr_type = 'ADDR_OTHER', 3162 func = 'ex_menu', 3163 }, 3164 { 3165 command = 'vsplit', 3166 flags = bit.bor(BANG, FILE1, RANGE, CMDARG, ARGOPT, TRLBAR), 3167 addr_type = 'ADDR_OTHER', 3168 func = 'ex_splitview', 3169 }, 3170 { 3171 command = 'vunmap', 3172 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 3173 addr_type = 'ADDR_NONE', 3174 func = 'ex_unmap', 3175 }, 3176 { 3177 command = 'vunmenu', 3178 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 3179 addr_type = 'ADDR_NONE', 3180 func = 'ex_menu', 3181 }, 3182 { 3183 command = 'write', 3184 flags = bit.bor(RANGE, WHOLEFOLD, BANG, FILE1, ARGOPT, DFLALL, TRLBAR, CMDWIN, LOCK_OK), 3185 addr_type = 'ADDR_LINES', 3186 func = 'ex_write', 3187 }, 3188 { 3189 command = 'wNext', 3190 flags = bit.bor(RANGE, WHOLEFOLD, BANG, FILE1, ARGOPT, TRLBAR), 3191 addr_type = 'ADDR_OTHER', 3192 func = 'ex_wnext', 3193 }, 3194 { 3195 command = 'wall', 3196 flags = bit.bor(BANG, TRLBAR, CMDWIN, LOCK_OK, ARGOPT), 3197 addr_type = 'ADDR_NONE', 3198 func = 'do_wqall', 3199 }, 3200 { 3201 command = 'while', 3202 flags = bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), 3203 addr_type = 'ADDR_NONE', 3204 func = 'ex_while', 3205 }, 3206 { 3207 command = 'winsize', 3208 flags = bit.bor(EXTRA, NEEDARG, TRLBAR), 3209 addr_type = 'ADDR_NONE', 3210 func = 'ex_winsize', 3211 }, 3212 { 3213 command = 'wincmd', 3214 flags = bit.bor(NEEDARG, WORD1, RANGE, COUNT, CMDWIN, LOCK_OK), 3215 addr_type = 'ADDR_OTHER', 3216 func = 'ex_wincmd', 3217 }, 3218 { 3219 command = 'windo', 3220 flags = bit.bor(NEEDARG, EXTRA, NOTRLCOM, RANGE, DFLALL), 3221 addr_type = 'ADDR_WINDOWS', 3222 func = 'ex_listdo', 3223 }, 3224 { 3225 command = 'winpos', 3226 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 3227 addr_type = 'ADDR_NONE', 3228 func = 'ex_ni', 3229 }, 3230 { 3231 command = 'wnext', 3232 flags = bit.bor(RANGE, BANG, FILE1, ARGOPT, TRLBAR), 3233 addr_type = 'ADDR_OTHER', 3234 func = 'ex_wnext', 3235 }, 3236 { 3237 command = 'wprevious', 3238 flags = bit.bor(RANGE, BANG, FILE1, ARGOPT, TRLBAR), 3239 addr_type = 'ADDR_OTHER', 3240 func = 'ex_wnext', 3241 }, 3242 { 3243 command = 'wq', 3244 flags = bit.bor(RANGE, WHOLEFOLD, BANG, FILE1, ARGOPT, DFLALL, TRLBAR), 3245 addr_type = 'ADDR_LINES', 3246 func = 'ex_exit', 3247 }, 3248 { 3249 command = 'wqall', 3250 flags = bit.bor(BANG, FILE1, ARGOPT, TRLBAR), 3251 addr_type = 'ADDR_NONE', 3252 func = 'do_wqall', 3253 }, 3254 { 3255 command = 'wshada', 3256 flags = bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), 3257 addr_type = 'ADDR_NONE', 3258 func = 'ex_shada', 3259 }, 3260 { 3261 command = 'wundo', 3262 flags = bit.bor(BANG, NEEDARG, FILE1), 3263 addr_type = 'ADDR_NONE', 3264 func = 'ex_wundo', 3265 }, 3266 { 3267 command = 'wviminfo', 3268 flags = bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), 3269 addr_type = 'ADDR_NONE', 3270 func = 'ex_shada', 3271 }, 3272 { 3273 command = 'xit', 3274 flags = bit.bor(RANGE, WHOLEFOLD, BANG, FILE1, ARGOPT, DFLALL, TRLBAR, CMDWIN, LOCK_OK), 3275 addr_type = 'ADDR_LINES', 3276 func = 'ex_exit', 3277 }, 3278 { 3279 command = 'xall', 3280 flags = bit.bor(BANG, TRLBAR), 3281 addr_type = 'ADDR_NONE', 3282 func = 'do_wqall', 3283 }, 3284 { 3285 command = 'xmap', 3286 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 3287 addr_type = 'ADDR_NONE', 3288 func = 'ex_map', 3289 }, 3290 { 3291 command = 'xmapclear', 3292 flags = bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), 3293 addr_type = 'ADDR_NONE', 3294 func = 'ex_mapclear', 3295 }, 3296 { 3297 command = 'xmenu', 3298 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 3299 addr_type = 'ADDR_OTHER', 3300 func = 'ex_menu', 3301 }, 3302 { 3303 command = 'xnoremap', 3304 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 3305 addr_type = 'ADDR_NONE', 3306 func = 'ex_map', 3307 }, 3308 { 3309 command = 'xnoremenu', 3310 flags = bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 3311 addr_type = 'ADDR_OTHER', 3312 func = 'ex_menu', 3313 }, 3314 { 3315 command = 'xunmap', 3316 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 3317 addr_type = 'ADDR_NONE', 3318 func = 'ex_unmap', 3319 }, 3320 { 3321 command = 'xunmenu', 3322 flags = bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), 3323 addr_type = 'ADDR_NONE', 3324 func = 'ex_menu', 3325 }, 3326 { 3327 command = 'yank', 3328 flags = bit.bor(RANGE, WHOLEFOLD, REGSTR, COUNT, TRLBAR, CMDWIN, LOCK_OK), 3329 addr_type = 'ADDR_LINES', 3330 func = 'ex_operators', 3331 }, 3332 { 3333 command = 'z', 3334 flags = bit.bor(RANGE, WHOLEFOLD, BANG, EXTRA, FLAGS, TRLBAR, CMDWIN, LOCK_OK), 3335 addr_type = 'ADDR_LINES', 3336 func = 'ex_z', 3337 }, 3338 -- commands that don't start with a letter 3339 { 3340 command = '!', 3341 enum = 'CMD_bang', 3342 flags = bit.bor(RANGE, WHOLEFOLD, BANG, FILES, CMDWIN, LOCK_OK), 3343 addr_type = 'ADDR_LINES', 3344 func = 'ex_bang', 3345 }, 3346 { 3347 command = '#', 3348 enum = 'CMD_pound', 3349 flags = bit.bor(RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN, LOCK_OK), 3350 addr_type = 'ADDR_LINES', 3351 func = 'ex_print', 3352 }, 3353 { 3354 command = '&', 3355 enum = 'CMD_and', 3356 flags = bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK, MODIFY), 3357 addr_type = 'ADDR_LINES', 3358 func = 'ex_substitute', 3359 }, 3360 { 3361 command = '<', 3362 enum = 'CMD_lshift', 3363 flags = bit.bor(RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN, LOCK_OK, MODIFY), 3364 addr_type = 'ADDR_LINES', 3365 func = 'ex_operators', 3366 }, 3367 { 3368 command = '=', 3369 enum = 'CMD_equal', 3370 flags = bit.bor(RANGE, EXTRA, DFLALL, ARGOPT, CMDWIN, LOCK_OK), 3371 addr_type = 'ADDR_LINES', 3372 func = 'ex_equal', 3373 }, 3374 { 3375 command = '>', 3376 enum = 'CMD_rshift', 3377 flags = bit.bor(RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN, LOCK_OK, MODIFY), 3378 addr_type = 'ADDR_LINES', 3379 func = 'ex_operators', 3380 }, 3381 { 3382 command = '@', 3383 enum = 'CMD_at', 3384 flags = bit.bor(RANGE, WHOLEFOLD, EXTRA, TRLBAR, CMDWIN, LOCK_OK), 3385 addr_type = 'ADDR_LINES', 3386 func = 'ex_at', 3387 }, 3388 { 3389 command = '~', 3390 enum = 'CMD_tilde', 3391 flags = bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK, MODIFY), 3392 addr_type = 'ADDR_LINES', 3393 func = 'ex_substitute', 3394 }, 3395 -- commands that start with an uppercase letter 3396 { 3397 command = 'Next', 3398 flags = bit.bor(EXTRA, RANGE, COUNT, BANG, CMDARG, ARGOPT, TRLBAR), 3399 addr_type = 'ADDR_OTHER', 3400 func = 'ex_previous', 3401 }, 3402 } 3403 3404 return M