diff options
author | ZyX <kp-pav@yandex.ru> | 2014-06-14 00:31:55 +0400 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2014-08-20 20:21:37 +0400 |
commit | 3becb5fd21c45bb58e27768ce900da8abc4dbc73 (patch) | |
tree | e5a7f8da7b691d3d355d20de312da8404a8ef7c2 | |
parent | bbefc73c553d681f78f40df9d97ec89ae9b06520 (diff) | |
download | rneovim-3becb5fd21c45bb58e27768ce900da8abc4dbc73.tar.gz rneovim-3becb5fd21c45bb58e27768ce900da8abc4dbc73.tar.bz2 rneovim-3becb5fd21c45bb58e27768ce900da8abc4dbc73.zip |
Use lua generator in place of ex_cmds_defs header trick
Closes #788
Fixes #379
Ref #549
-rw-r--r-- | scripts/genex_cmds.lua | 87 | ||||
-rwxr-xr-x | scripts/transform_ex_cmds_defs.pl | 70 | ||||
-rw-r--r-- | src/nvim/CMakeLists.txt | 17 | ||||
-rw-r--r-- | src/nvim/ex_cmds.lua | 2547 | ||||
-rw-r--r-- | src/nvim/ex_cmds_defs.h | 1140 | ||||
-rw-r--r-- | src/nvim/ex_docmd.c | 40 | ||||
-rw-r--r-- | src/nvim/ex_docmd.h | 4 |
7 files changed, 2770 insertions, 1135 deletions
diff --git a/scripts/genex_cmds.lua b/scripts/genex_cmds.lua new file mode 100644 index 0000000000..969a874535 --- /dev/null +++ b/scripts/genex_cmds.lua @@ -0,0 +1,87 @@ +local nvimsrcdir = arg[1] +local includedir = arg[2] +local autodir = arg[3] + +if nvimsrcdir == '--help' then + print ([[ +Usage: + lua genex_cmds.lua src/nvim build/include build/src/nvim/auto + +Will generate files build/include/ex_cmds_enum.generated.h with cmdidx_T +enum and build/src/nvim/auto/ex_cmds_defs.generated.h with main Ex commands +definitions. +]]) + os.exit(0) +end + +package.path = nvimsrcdir .. '/?.lua;' .. package.path + +local enumfname = includedir .. '/ex_cmds_enum.generated.h' +local defsfname = autodir .. '/ex_cmds_defs.generated.h' + +local enumfile = io.open(enumfname, 'w') +local defsfile = io.open(defsfname, 'w') + +local defs = require('ex_cmds') +local lastchar = nil + +local i +local cmd +local first = true +local prevfirstchar = nil + +local byte_a = string.byte('a') +local byte_z = string.byte('z') + +local cmdidxs = string.format([[ +static cmdidx_T cmdidxs[%u] = { +]], byte_z - byte_a + 2) + +enumfile:write([[ +typedef enum CMD_index { +]]) +defsfile:write([[ +static CommandDefinition cmdnames[] = { +]]) +for i, cmd in ipairs(defs) do + local enumname = cmd.enum or ('CMD_' .. cmd.command) + firstchar = string.byte(cmd.command) + if firstchar ~= prevfirstchar then + if (not prevfirstchar + or (byte_a <= firstchar and firstchar <= byte_z) + or (byte_a <= prevfirstchar and prevfirstchar <= byte_z)) then + if not first then + cmdidxs = cmdidxs .. ',\n' + end + cmdidxs = cmdidxs .. ' ' .. enumname + end + prevfirstchar = firstchar + end + if first then + first = false + else + defsfile:write(',\n') + end + enumfile:write(' ' .. enumname .. ',\n') + defsfile:write(string.format([[ + [%s] = { + .cmd_name = (char_u *) "%s", + .cmd_func = &%s, + .cmd_argt = %uL + }]], enumname, cmd.command, cmd.func, cmd.flags)) +end +defsfile:write([[ + +}; +]]) +enumfile:write([[ + CMD_SIZE, + CMD_USER = -1, + CMD_USER_BUF = -2 +} cmdidx_T; +]]) +cmdidxs = cmdidxs .. [[ + +}; +]] +defsfile:write(cmdidxs) diff --git a/scripts/transform_ex_cmds_defs.pl b/scripts/transform_ex_cmds_defs.pl new file mode 100755 index 0000000000..b340265992 --- /dev/null +++ b/scripts/transform_ex_cmds_defs.pl @@ -0,0 +1,70 @@ +#!/usr/bin/perl + +use strict; +use warnings; +no utf8; + +my $srcfname = shift @ARGV; +my $tgtfname = shift @ARGV; + +if ($srcfname eq "--help") { + print << "EOF"; +$0 path/to/ex_cmds_defs.h path/to/ex_cmds.lua + + Translate Ex commands defines from old format to new one. +EOF +} + +my $flag_const = qr((?:[A-Z]+[A-Z1-9])); + +my $F; +open $F, "<", "$srcfname" + or die "Failed to open $srcfname"; + +my $T; +open $T, ">", "$tgtfname" + or die "Failed to open $tgtfname"; + +my ($enum_name, $cmd_name, $cmd_func); +my ($flags); +my $did_header = 0; +while (<$F>) { + if (/^#define\s+($flag_const)\s+(.*)/) { + my $const_name = $1; + my $const_value = $2; + $const_value =~ s@/\*.*|//.*@@g; + $const_value =~ s/\s+//g; + $const_value =~ s/\|/+/g; + $const_value =~ s/(?<=\d)L//g; + print $T "local $const_name = $const_value\n"; + } elsif (/^\{/../^\}/) { + if (/^\s*EX\(\s*CMD_(\w+)\s*,\s*"((?:\\.|[^"\\])+)"\s*,\s*(\w+)\s*,\s*$/) { + $enum_name = $1; + $cmd_name = $2; + $cmd_func = $3; + } elsif (defined $enum_name and /^\s*($flag_const(?:\|$flag_const)*|0)/) { + if (not $did_header) { + print $T "return {\n"; + $did_header = 1; + } + $flags = $1; + $flags =~ s/\|/+/g; + local $\ = "\n"; + print $T " {"; + print $T " command='$cmd_name',"; + print $T " enum='CMD_$enum_name'," + if ($cmd_name ne $enum_name); + print $T " flags=$flags,"; + print $T " func='$cmd_func',"; + print $T " },"; + undef $enum_name; + undef $cmd_name; + undef $cmd_func; + undef $flags; + } else { + next; + } + } +} + +print $T "}\n"; diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index 951cd9ded1..83de3347bd 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -7,6 +7,10 @@ set(MSGPACK_RPC_HEADER ${PROJECT_SOURCE_DIR}/src/nvim/os/msgpack_rpc.h) set(MSGPACK_DISPATCH ${GENERATED_DIR}/msgpack_dispatch.c) set(HEADER_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/gendeclarations.lua) set(GENERATED_INCLUDES_DIR ${PROJECT_BINARY_DIR}/include) +set(GENERATED_EX_CMDS_ENUM ${GENERATED_INCLUDES_DIR}/ex_cmds_enum.generated.h) +set(GENERATED_EX_CMDS_DEFS ${GENERATED_DIR}/ex_cmds_defs.generated.h) +set(EX_CMDS_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/genex_cmds.lua) +set(EX_CMDS_DEFS_FILE ${PROJECT_SOURCE_DIR}/src/nvim/ex_cmds.lua) include_directories(${GENERATED_DIR}) include_directories(${GENERATED_INCLUDES_DIR}) @@ -124,11 +128,20 @@ add_custom_command(OUTPUT ${MSGPACK_DISPATCH} ${API_HEADERS} ${MSGPACK_RPC_HEADER} ${DISPATCH_GENERATOR} - ) +) list(APPEND NEOVIM_GENERATED_SOURCES "${PROJECT_BINARY_DIR}/config/auto/pathdef.c" - "${MSGPACK_DISPATCH}") + "${MSGPACK_DISPATCH}" + "${GENERATED_EX_CMDS_ENUM}" + "${GENERATED_EX_CMDS_DEFS}" +) + +add_custom_command(OUTPUT ${GENERATED_EX_CMDS_ENUM} ${GENERATED_EX_CMDS_DEFS} + COMMAND ${LUA_PRG} ${EX_CMDS_GENERATOR} + ${PROJECT_SOURCE_DIR}/src/nvim ${GENERATED_INCLUDES_DIR} ${GENERATED_DIR} + DEPENDS ${EX_CMDS_GENERATOR} ${EX_CMDS_DEFS_FILE} +) # Our dependencies come first. diff --git a/src/nvim/ex_cmds.lua b/src/nvim/ex_cmds.lua new file mode 100644 index 0000000000..6ed1f2a46a --- /dev/null +++ b/src/nvim/ex_cmds.lua @@ -0,0 +1,2547 @@ +local RANGE = 0x001 +local BANG = 0x002 +local EXTRA = 0x004 +local XFILE = 0x008 +local NOSPC = 0x010 +local DFLALL = 0x020 +local WHOLEFOLD = 0x040 +local NEEDARG = 0x080 +local TRLBAR = 0x100 +local REGSTR = 0x200 +local COUNT = 0x400 +local NOTRLCOM = 0x800 +local ZEROR = 0x1000 +local USECTRLV = 0x2000 +local NOTADR = 0x4000 +local EDITCMD = 0x8000 +local BUFNAME = 0x10000 +local BUFUNL = 0x20000 +local ARGOPT = 0x40000 +local SBOXOK = 0x80000 +local CMDWIN = 0x100000 +local MODIFY = 0x200000 +local EXFLAGS = 0x400000 +local FILES = (XFILE+EXTRA) +local WORD1 = (EXTRA+NOSPC) +local FILE1 = (FILES+NOSPC) +return { + { + command='append', + flags=BANG+RANGE+ZEROR+TRLBAR+CMDWIN+MODIFY, + func='ex_append', + }, + { + command='abbreviate', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_abbreviate', + }, + { + command='abclear', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_abclear', + }, + { + command='aboveleft', + flags=NEEDARG+EXTRA+NOTRLCOM, + func='ex_wrongmodifier', + }, + { + command='all', + flags=BANG+RANGE+NOTADR+COUNT+TRLBAR, + func='ex_all', + }, + { + command='amenu', + flags=RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='anoremenu', + flags=RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='args', + flags=BANG+FILES+EDITCMD+ARGOPT+TRLBAR, + func='ex_args', + }, + { + command='argadd', + flags=BANG+NEEDARG+RANGE+NOTADR+ZEROR+FILES+TRLBAR, + func='ex_argadd', + }, + { + command='argdelete', + flags=BANG+RANGE+NOTADR+FILES+TRLBAR, + func='ex_argdelete', + }, + { + command='argdo', + flags=BANG+NEEDARG+EXTRA+NOTRLCOM, + func='ex_listdo', + }, + { + command='argedit', + flags=BANG+NEEDARG+RANGE+NOTADR+FILE1+EDITCMD+ARGOPT+TRLBAR, + func='ex_argedit', + }, + { + command='argglobal', + flags=BANG+FILES+EDITCMD+ARGOPT+TRLBAR, + func='ex_args', + }, + { + command='arglocal', + flags=BANG+FILES+EDITCMD+ARGOPT+TRLBAR, + func='ex_args', + }, + { + command='argument', + flags=BANG+RANGE+NOTADR+COUNT+EXTRA+EDITCMD+ARGOPT+TRLBAR, + func='ex_argument', + }, + { + command='ascii', + flags=TRLBAR+SBOXOK+CMDWIN, + func='do_ascii', + }, + { + command='autocmd', + flags=BANG+EXTRA+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_autocmd', + }, + { + command='augroup', + flags=BANG+WORD1+TRLBAR+CMDWIN, + func='ex_autocmd', + }, + { + command='aunmenu', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='buffer', + flags=BANG+RANGE+NOTADR+BUFNAME+BUFUNL+COUNT+EXTRA+TRLBAR, + func='ex_buffer', + }, + { + command='bNext', + flags=BANG+RANGE+NOTADR+COUNT+TRLBAR, + func='ex_bprevious', + }, + { + command='ball', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='ex_buffer_all', + }, + { + command='badd', + flags=NEEDARG+FILE1+EDITCMD+TRLBAR+CMDWIN, + func='ex_edit', + }, + { + command='bdelete', + flags=BANG+RANGE+NOTADR+BUFNAME+COUNT+EXTRA+TRLBAR, + func='ex_bunload', + }, + { + command='behave', + flags=NEEDARG+WORD1+TRLBAR+CMDWIN, + func='ex_behave', + }, + { + command='belowright', + flags=NEEDARG+EXTRA+NOTRLCOM, + func='ex_wrongmodifier', + }, + { + command='bfirst', + flags=BANG+RANGE+NOTADR+TRLBAR, + func='ex_brewind', + }, + { + command='blast', + flags=BANG+RANGE+NOTADR+TRLBAR, + func='ex_blast', + }, + { + command='bmodified', + flags=BANG+RANGE+NOTADR+COUNT+TRLBAR, + func='ex_bmodified', + }, + { + command='bnext', + flags=BANG+RANGE+NOTADR+COUNT+TRLBAR, + func='ex_bnext', + }, + { + command='botright', + flags=NEEDARG+EXTRA+NOTRLCOM, + func='ex_wrongmodifier', + }, + { + command='bprevious', + flags=BANG+RANGE+NOTADR+COUNT+TRLBAR, + func='ex_bprevious', + }, + { + command='brewind', + flags=BANG+RANGE+NOTADR+TRLBAR, + func='ex_brewind', + }, + { + command='break', + flags=TRLBAR+SBOXOK+CMDWIN, + func='ex_break', + }, + { + command='breakadd', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_breakadd', + }, + { + command='breakdel', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_breakdel', + }, + { + command='breaklist', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_breaklist', + }, + { + command='browse', + flags=NEEDARG+EXTRA+NOTRLCOM+CMDWIN, + func='ex_wrongmodifier', + }, + { + command='buffers', + flags=BANG+TRLBAR+CMDWIN, + func='buflist_list', + }, + { + command='bufdo', + flags=BANG+NEEDARG+EXTRA+NOTRLCOM, + func='ex_listdo', + }, + { + command='bunload', + flags=BANG+RANGE+NOTADR+BUFNAME+COUNT+EXTRA+TRLBAR, + func='ex_bunload', + }, + { + command='bwipeout', + flags=BANG+RANGE+NOTADR+BUFNAME+BUFUNL+COUNT+EXTRA+TRLBAR, + func='ex_bunload', + }, + { + command='change', + flags=BANG+WHOLEFOLD+RANGE+COUNT+TRLBAR+CMDWIN+MODIFY, + func='ex_change', + }, + { + command='cNext', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cnext', + }, + { + command='cNfile', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cnext', + }, + { + command='cabbrev', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_abbreviate', + }, + { + command='cabclear', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_abclear', + }, + { + command='caddbuffer', + flags=RANGE+NOTADR+WORD1+TRLBAR, + func='ex_cbuffer', + }, + { + command='caddexpr', + flags=NEEDARG+WORD1+NOTRLCOM+TRLBAR, + func='ex_cexpr', + }, + { + command='caddfile', + flags=TRLBAR+FILE1, + func='ex_cfile', + }, + { + command='call', + flags=RANGE+NEEDARG+EXTRA+NOTRLCOM+SBOXOK+CMDWIN, + func='ex_call', + }, + { + command='catch', + flags=EXTRA+SBOXOK+CMDWIN, + func='ex_catch', + }, + { + command='cbuffer', + flags=BANG+RANGE+NOTADR+WORD1+TRLBAR, + func='ex_cbuffer', + }, + { + command='cc', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cc', + }, + { + command='cclose', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='ex_cclose', + }, + { + command='cd', + flags=BANG+FILE1+TRLBAR+CMDWIN, + func='ex_cd', + }, + { + command='center', + flags=TRLBAR+RANGE+WHOLEFOLD+EXTRA+CMDWIN+MODIFY, + func='ex_align', + }, + { + command='cexpr', + flags=NEEDARG+WORD1+NOTRLCOM+TRLBAR+BANG, + func='ex_cexpr', + }, + { + command='cfile', + flags=TRLBAR+FILE1+BANG, + func='ex_cfile', + }, + { + command='cfirst', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cc', + }, + { + command='cgetfile', + flags=TRLBAR+FILE1, + func='ex_cfile', + }, + { + command='cgetbuffer', + flags=RANGE+NOTADR+WORD1+TRLBAR, + func='ex_cbuffer', + }, + { + command='cgetexpr', + flags=NEEDARG+WORD1+NOTRLCOM+TRLBAR, + func='ex_cexpr', + }, + { + command='chdir', + flags=BANG+FILE1+TRLBAR+CMDWIN, + func='ex_cd', + }, + { + command='changes', + flags=TRLBAR+CMDWIN, + func='ex_changes', + }, + { + command='checkpath', + flags=TRLBAR+BANG+CMDWIN, + func='ex_checkpath', + }, + { + command='checktime', + flags=RANGE+NOTADR+BUFNAME+COUNT+EXTRA+TRLBAR, + func='ex_checktime', + }, + { + command='clist', + flags=BANG+EXTRA+TRLBAR+CMDWIN, + func='qf_list', + }, + { + command='clast', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cc', + }, + { + command='close', + flags=BANG+TRLBAR+CMDWIN, + func='ex_close', + }, + { + command='cmap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_map', + }, + { + command='cmapclear', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_mapclear', + }, + { + command='cmenu', + flags=RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='cnext', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cnext', + }, + { + command='cnewer', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='qf_age', + }, + { + command='cnfile', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cnext', + }, + { + command='cnoremap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_map', + }, + { + command='cnoreabbrev', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_abbreviate', + }, + { + command='cnoremenu', + flags=RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='copy', + flags=RANGE+WHOLEFOLD+EXTRA+TRLBAR+CMDWIN+MODIFY, + func='ex_copymove', + }, + { + command='colder', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='qf_age', + }, + { + command='colorscheme', + flags=WORD1+TRLBAR+CMDWIN, + func='ex_colorscheme', + }, + { + command='command', + flags=EXTRA+BANG+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_command', + }, + { + command='comclear', + flags=TRLBAR+CMDWIN, + func='ex_comclear', + }, + { + command='compiler', + flags=BANG+TRLBAR+WORD1+CMDWIN, + func='ex_compiler', + }, + { + command='continue', + flags=TRLBAR+SBOXOK+CMDWIN, + func='ex_continue', + }, + { + command='confirm', + flags=NEEDARG+EXTRA+NOTRLCOM+CMDWIN, + func='ex_wrongmodifier', + }, + { + command='copen', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='ex_copen', + }, + { + command='cprevious', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cnext', + }, + { + command='cpfile', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cnext', + }, + { + command='cquit', + flags=TRLBAR+BANG, + func='ex_cquit', + }, + { + command='crewind', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cc', + }, + { + command='cscope', + flags=EXTRA+NOTRLCOM+XFILE, + func='do_cscope', + }, + { + command='cstag', + flags=BANG+TRLBAR+WORD1, + func='do_cstag', + }, + { + command='cunmap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_unmap', + }, + { + command='cunabbrev', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_abbreviate', + }, + { + command='cunmenu', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='cwindow', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='ex_cwindow', + }, + { + command='delete', + flags=RANGE+WHOLEFOLD+REGSTR+COUNT+TRLBAR+CMDWIN+MODIFY, + func='ex_operators', + }, + { + command='delmarks', + flags=BANG+EXTRA+TRLBAR+CMDWIN, + func='ex_delmarks', + }, + { + command='debug', + flags=NEEDARG+EXTRA+NOTRLCOM+SBOXOK+CMDWIN, + func='ex_debug', + }, + { + command='debuggreedy', + flags=RANGE+NOTADR+ZEROR+TRLBAR+CMDWIN, + func='ex_debuggreedy', + }, + { + command='delcommand', + flags=NEEDARG+WORD1+TRLBAR+CMDWIN, + func='ex_delcommand', + }, + { + command='delfunction', + flags=NEEDARG+WORD1+CMDWIN, + func='ex_delfunction', + }, + { + command='display', + flags=EXTRA+NOTRLCOM+TRLBAR+SBOXOK+CMDWIN, + func='ex_display', + }, + { + command='diffupdate', + flags=BANG+TRLBAR, + func='ex_diffupdate', + }, + { + command='diffget', + flags=RANGE+EXTRA+TRLBAR+MODIFY, + func='ex_diffgetput', + }, + { + command='diffoff', + flags=BANG+TRLBAR, + func='ex_diffoff', + }, + { + command='diffpatch', + flags=EXTRA+FILE1+TRLBAR+MODIFY, + func='ex_diffpatch', + }, + { + command='diffput', + flags=RANGE+EXTRA+TRLBAR, + func='ex_diffgetput', + }, + { + command='diffsplit', + flags=EXTRA+FILE1+TRLBAR, + func='ex_diffsplit', + }, + { + command='diffthis', + flags=TRLBAR, + func='ex_diffthis', + }, + { + command='digraphs', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_digraphs', + }, + { + command='djump', + flags=BANG+RANGE+DFLALL+WHOLEFOLD+EXTRA, + func='ex_findpat', + }, + { + command='dlist', + flags=BANG+RANGE+DFLALL+WHOLEFOLD+EXTRA+CMDWIN, + func='ex_findpat', + }, + { + command='doautocmd', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_doautocmd', + }, + { + command='doautoall', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_doautoall', + }, + { + command='drop', + flags=FILES+EDITCMD+NEEDARG+ARGOPT+TRLBAR, + func='ex_drop', + }, + { + command='dsearch', + flags=BANG+RANGE+DFLALL+WHOLEFOLD+EXTRA+CMDWIN, + func='ex_findpat', + }, + { + command='dsplit', + flags=BANG+RANGE+DFLALL+WHOLEFOLD+EXTRA, + func='ex_findpat', + }, + { + command='edit', + flags=BANG+FILE1+EDITCMD+ARGOPT+TRLBAR, + func='ex_edit', + }, + { + command='earlier', + flags=TRLBAR+EXTRA+NOSPC+CMDWIN, + func='ex_later', + }, + { + command='echo', + flags=EXTRA+NOTRLCOM+SBOXOK+CMDWIN, + func='ex_echo', + }, + { + command='echoerr', + flags=EXTRA+NOTRLCOM+SBOXOK+CMDWIN, + func='ex_execute', + }, + { + command='echohl', + flags=EXTRA+TRLBAR+SBOXOK+CMDWIN, + func='ex_echohl', + }, + { + command='echomsg', + flags=EXTRA+NOTRLCOM+SBOXOK+CMDWIN, + func='ex_execute', + }, + { + command='echon', + flags=EXTRA+NOTRLCOM+SBOXOK+CMDWIN, + func='ex_echo', + }, + { + command='else', + flags=TRLBAR+SBOXOK+CMDWIN, + func='ex_else', + }, + { + command='elseif', + flags=EXTRA+NOTRLCOM+SBOXOK+CMDWIN, + func='ex_else', + }, + { + command='emenu', + flags=NEEDARG+EXTRA+TRLBAR+NOTRLCOM+RANGE+NOTADR+CMDWIN, + func='ex_emenu', + }, + { + command='endif', + flags=TRLBAR+SBOXOK+CMDWIN, + func='ex_endif', + }, + { + command='endfunction', + flags=TRLBAR+CMDWIN, + func='ex_endfunction', + }, + { + command='endfor', + flags=TRLBAR+SBOXOK+CMDWIN, + func='ex_endwhile', + }, + { + command='endtry', + flags=TRLBAR+SBOXOK+CMDWIN, + func='ex_endtry', + }, + { + command='endwhile', + flags=TRLBAR+SBOXOK+CMDWIN, + func='ex_endwhile', + }, + { + command='enew', + flags=BANG+TRLBAR, + func='ex_edit', + }, + { + command='ex', + flags=BANG+FILE1+EDITCMD+ARGOPT+TRLBAR, + func='ex_edit', + }, + { + command='execute', + flags=EXTRA+NOTRLCOM+SBOXOK+CMDWIN, + func='ex_execute', + }, + { + command='exit', + flags=RANGE+WHOLEFOLD+BANG+FILE1+ARGOPT+DFLALL+TRLBAR+CMDWIN, + func='ex_exit', + }, + { + command='exusage', + flags=TRLBAR, + func='ex_exusage', + }, + { + command='file', + flags=RANGE+NOTADR+ZEROR+BANG+FILE1+TRLBAR, + func='ex_file', + }, + { + command='files', + flags=BANG+TRLBAR+CMDWIN, + func='buflist_list', + }, + { + command='filetype', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_filetype', + }, + { + command='find', + flags=RANGE+NOTADR+BANG+FILE1+EDITCMD+ARGOPT+TRLBAR, + func='ex_find', + }, + { + command='finally', + flags=TRLBAR+SBOXOK+CMDWIN, + func='ex_finally', + }, + { + command='finish', + flags=TRLBAR+SBOXOK+CMDWIN, + func='ex_finish', + }, + { + command='first', + flags=EXTRA+BANG+EDITCMD+ARGOPT+TRLBAR, + func='ex_rewind', + }, + { + command='fixdel', + flags=TRLBAR+CMDWIN, + func='do_fixdel', + }, + { + command='fold', + flags=RANGE+WHOLEFOLD+TRLBAR+SBOXOK+CMDWIN, + func='ex_fold', + }, + { + command='foldclose', + flags=RANGE+BANG+WHOLEFOLD+TRLBAR+SBOXOK+CMDWIN, + func='ex_foldopen', + }, + { + command='folddoopen', + flags=RANGE+DFLALL+NEEDARG+EXTRA+NOTRLCOM, + func='ex_folddo', + }, + { + command='folddoclosed', + flags=RANGE+DFLALL+NEEDARG+EXTRA+NOTRLCOM, + func='ex_folddo', + }, + { + command='foldopen', + flags=RANGE+BANG+WHOLEFOLD+TRLBAR+SBOXOK+CMDWIN, + func='ex_foldopen', + }, + { + command='for', + flags=EXTRA+NOTRLCOM+SBOXOK+CMDWIN, + func='ex_while', + }, + { + command='function', + flags=EXTRA+BANG+CMDWIN, + func='ex_function', + }, + { + command='global', + flags=RANGE+WHOLEFOLD+BANG+EXTRA+DFLALL+SBOXOK+CMDWIN, + func='ex_global', + }, + { + command='goto', + flags=RANGE+NOTADR+COUNT+TRLBAR+SBOXOK+CMDWIN, + func='ex_goto', + }, + { + command='grep', + flags=RANGE+NOTADR+BANG+NEEDARG+EXTRA+NOTRLCOM+TRLBAR+XFILE, + func='ex_make', + }, + { + command='grepadd', + flags=RANGE+NOTADR+BANG+NEEDARG+EXTRA+NOTRLCOM+TRLBAR+XFILE, + func='ex_make', + }, + { + command='gui', + flags=BANG+FILES+EDITCMD+ARGOPT+TRLBAR+CMDWIN, + func='ex_gui', + }, + { + command='gvim', + flags=BANG+FILES+EDITCMD+ARGOPT+TRLBAR+CMDWIN, + func='ex_gui', + }, + { + command='help', + flags=BANG+EXTRA+NOTRLCOM, + func='ex_help', + }, + { + command='helpfind', + flags=EXTRA+NOTRLCOM, + func='ex_helpfind', + }, + { + command='helpgrep', + flags=EXTRA+NOTRLCOM+NEEDARG, + func='ex_helpgrep', + }, + { + command='helptags', + flags=NEEDARG+FILES+TRLBAR+CMDWIN, + func='ex_helptags', + }, + { + command='hardcopy', + flags=RANGE+COUNT+EXTRA+TRLBAR+DFLALL+BANG, + func='ex_hardcopy', + }, + { + command='highlight', + flags=BANG+EXTRA+TRLBAR+SBOXOK+CMDWIN, + func='ex_highlight', + }, + { + command='hide', + flags=BANG+EXTRA+NOTRLCOM, + func='ex_hide', + }, + { + command='history', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_history', + }, + { + command='insert', + flags=BANG+RANGE+TRLBAR+CMDWIN+MODIFY, + func='ex_append', + }, + { + command='iabbrev', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_abbreviate', + }, + { + command='iabclear', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_abclear', + }, + { + command='if', + flags=EXTRA+NOTRLCOM+SBOXOK+CMDWIN, + func='ex_if', + }, + { + command='ijump', + flags=BANG+RANGE+DFLALL+WHOLEFOLD+EXTRA, + func='ex_findpat', + }, + { + command='ilist', + flags=BANG+RANGE+DFLALL+WHOLEFOLD+EXTRA+CMDWIN, + func='ex_findpat', + }, + { + command='imap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_map', + }, + { + command='imapclear', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_mapclear', + }, + { + command='imenu', + flags=RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='inoremap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_map', + }, + { + command='inoreabbrev', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_abbreviate', + }, + { + command='inoremenu', + flags=RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='intro', + flags=TRLBAR+CMDWIN, + func='ex_intro', + }, + { + command='isearch', + flags=BANG+RANGE+DFLALL+WHOLEFOLD+EXTRA+CMDWIN, + func='ex_findpat', + }, + { + command='isplit', + flags=BANG+RANGE+DFLALL+WHOLEFOLD+EXTRA, + func='ex_findpat', + }, + { + command='iunmap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_unmap', + }, + { + command='iunabbrev', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_abbreviate', + }, + { + command='iunmenu', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='join', + flags=BANG+RANGE+WHOLEFOLD+COUNT+EXFLAGS+TRLBAR+CMDWIN+MODIFY, + func='ex_join', + }, + { + command='jumps', + flags=TRLBAR+CMDWIN, + func='ex_jumps', + }, + { + command='k', + flags=RANGE+WORD1+TRLBAR+SBOXOK+CMDWIN, + func='ex_mark', + }, + { + command='keepmarks', + flags=NEEDARG+EXTRA+NOTRLCOM, + func='ex_wrongmodifier', + }, + { + command='keepjumps', + flags=NEEDARG+EXTRA+NOTRLCOM, + func='ex_wrongmodifier', + }, + { + command='keeppatterns', + flags=NEEDARG+EXTRA+NOTRLCOM, + func='ex_wrongmodifier', + }, + { + command='keepalt', + flags=NEEDARG+EXTRA+NOTRLCOM, + func='ex_wrongmodifier', + }, + { + command='list', + flags=RANGE+WHOLEFOLD+COUNT+EXFLAGS+TRLBAR+CMDWIN, + func='ex_print', + }, + { + command='lNext', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cnext', + }, + { + command='lNfile', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cnext', + }, + { + command='last', + flags=EXTRA+BANG+EDITCMD+ARGOPT+TRLBAR, + func='ex_last', + }, + { + command='language', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_language', + }, + { + command='laddexpr', + flags=NEEDARG+WORD1+NOTRLCOM+TRLBAR, + func='ex_cexpr', + }, + { + command='laddbuffer', + flags=RANGE+NOTADR+WORD1+TRLBAR, + func='ex_cbuffer', + }, + { + command='laddfile', + flags=TRLBAR+FILE1, + func='ex_cfile', + }, + { + command='later', + flags=TRLBAR+EXTRA+NOSPC+CMDWIN, + func='ex_later', + }, + { + command='lbuffer', + flags=BANG+RANGE+NOTADR+WORD1+TRLBAR, + func='ex_cbuffer', + }, + { + command='lcd', + flags=BANG+FILE1+TRLBAR+CMDWIN, + func='ex_cd', + }, + { + command='lchdir', + flags=BANG+FILE1+TRLBAR+CMDWIN, + func='ex_cd', + }, + { + command='lclose', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='ex_cclose', + }, + { + command='lcscope', + flags=EXTRA+NOTRLCOM+XFILE, + func='do_cscope', + }, + { + command='left', + flags=TRLBAR+RANGE+WHOLEFOLD+EXTRA+CMDWIN+MODIFY, + func='ex_align', + }, + { + command='leftabove', + flags=NEEDARG+EXTRA+NOTRLCOM, + func='ex_wrongmodifier', + }, + { + command='let', + flags=EXTRA+NOTRLCOM+SBOXOK+CMDWIN, + func='ex_let', + }, + { + command='lexpr', + flags=NEEDARG+WORD1+NOTRLCOM+TRLBAR+BANG, + func='ex_cexpr', + }, + { + command='lfile', + flags=TRLBAR+FILE1+BANG, + func='ex_cfile', + }, + { + command='lfirst', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cc', + }, + { + command='lgetfile', + flags=TRLBAR+FILE1, + func='ex_cfile', + }, + { + command='lgetbuffer', + flags=RANGE+NOTADR+WORD1+TRLBAR, + func='ex_cbuffer', + }, + { + command='lgetexpr', + flags=NEEDARG+WORD1+NOTRLCOM+TRLBAR, + func='ex_cexpr', + }, + { + command='lgrep', + flags=RANGE+NOTADR+BANG+NEEDARG+EXTRA+NOTRLCOM+TRLBAR+XFILE, + func='ex_make', + }, + { + command='lgrepadd', + flags=RANGE+NOTADR+BANG+NEEDARG+EXTRA+NOTRLCOM+TRLBAR+XFILE, + func='ex_make', + }, + { + command='lhelpgrep', + flags=EXTRA+NOTRLCOM+NEEDARG, + func='ex_helpgrep', + }, + { + command='ll', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cc', + }, + { + command='llast', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cc', + }, + { + command='llist', + flags=BANG+EXTRA+TRLBAR+CMDWIN, + func='qf_list', + }, + { + command='lmap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_map', + }, + { + command='lmapclear', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_mapclear', + }, + { + command='lmake', + flags=BANG+EXTRA+NOTRLCOM+TRLBAR+XFILE, + func='ex_make', + }, + { + command='lnoremap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_map', + }, + { + command='lnext', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cnext', + }, + { + command='lnewer', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='qf_age', + }, + { + command='lnfile', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cnext', + }, + { + command='loadview', + flags=FILE1+TRLBAR, + func='ex_loadview', + }, + { + command='loadkeymap', + flags=CMDWIN, + func='ex_loadkeymap', + }, + { + command='lockmarks', + flags=NEEDARG+EXTRA+NOTRLCOM, + func='ex_wrongmodifier', + }, + { + command='lockvar', + flags=BANG+EXTRA+NEEDARG+SBOXOK+CMDWIN, + func='ex_lockvar', + }, + { + command='lolder', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='qf_age', + }, + { + command='lopen', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='ex_copen', + }, + { + command='lprevious', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cnext', + }, + { + command='lpfile', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cnext', + }, + { + command='lrewind', + flags=RANGE+NOTADR+COUNT+TRLBAR+BANG, + func='ex_cc', + }, + { + command='ltag', + flags=NOTADR+TRLBAR+BANG+WORD1, + func='ex_tag', + }, + { + command='lunmap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_unmap', + }, + { + command='lvimgrep', + flags=RANGE+NOTADR+BANG+NEEDARG+EXTRA+NOTRLCOM+TRLBAR+XFILE, + func='ex_vimgrep', + }, + { + command='lvimgrepadd', + flags=RANGE+NOTADR+BANG+NEEDARG+EXTRA+NOTRLCOM+TRLBAR+XFILE, + func='ex_vimgrep', + }, + { + command='lwindow', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='ex_cwindow', + }, + { + command='ls', + flags=BANG+TRLBAR+CMDWIN, + func='buflist_list', + }, + { + command='move', + flags=RANGE+WHOLEFOLD+EXTRA+TRLBAR+CMDWIN+MODIFY, + func='ex_copymove', + }, + { + command='mark', + flags=RANGE+WORD1+TRLBAR+SBOXOK+CMDWIN, + func='ex_mark', + }, + { + command='make', + flags=BANG+EXTRA+NOTRLCOM+TRLBAR+XFILE, + func='ex_make', + }, + { + command='map', + flags=BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_map', + }, + { + command='mapclear', + flags=EXTRA+BANG+TRLBAR+CMDWIN, + func='ex_mapclear', + }, + { + command='marks', + flags=EXTRA+TRLBAR+CMDWIN, + func='do_marks', + }, + { + command='match', + flags=RANGE+NOTADR+EXTRA+CMDWIN, + func='ex_match', + }, + { + command='menu', + flags=RANGE+NOTADR+ZEROR+BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='menutranslate', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menutranslate', + }, + { + command='messages', + flags=TRLBAR+CMDWIN, + func='ex_messages', + }, + { + command='mkexrc', + flags=BANG+FILE1+TRLBAR+CMDWIN, + func='ex_mkrc', + }, + { + command='mksession', + flags=BANG+FILE1+TRLBAR, + func='ex_mkrc', + }, + { + command='mkspell', + flags=BANG+NEEDARG+EXTRA+NOTRLCOM+TRLBAR+XFILE, + func='ex_mkspell', + }, + { + command='mkvimrc', + flags=BANG+FILE1+TRLBAR+CMDWIN, + func='ex_mkrc', + }, + { + command='mkview', + flags=BANG+FILE1+TRLBAR, + func='ex_mkrc', + }, + { + command='mode', + flags=WORD1+TRLBAR+CMDWIN, + func='ex_mode', + }, + { + command='next', + flags=RANGE+NOTADR+BANG+FILES+EDITCMD+ARGOPT+TRLBAR, + func='ex_next', + }, + { + command='nbkey', + flags=EXTRA+NOTADR+NEEDARG, + func='ex_nbkey', + }, + { + command='nbclose', + flags=TRLBAR+CMDWIN, + func='ex_nbclose', + }, + { + command='nbstart', + flags=WORD1+TRLBAR+CMDWIN, + func='ex_nbstart', + }, + { + command='new', + flags=BANG+FILE1+RANGE+NOTADR+EDITCMD+ARGOPT+TRLBAR, + func='ex_splitview', + }, + { + command='nmap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_map', + }, + { + command='nmapclear', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_mapclear', + }, + { + command='nmenu', + flags=RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='nnoremap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_map', + }, + { + command='nnoremenu', + flags=RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='noremap', + flags=BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_map', + }, + { + command='noautocmd', + flags=NEEDARG+EXTRA+NOTRLCOM, + func='ex_wrongmodifier', + }, + { + command='nohlsearch', + flags=TRLBAR+SBOXOK+CMDWIN, + func='ex_nohlsearch', + }, + { + command='noreabbrev', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_abbreviate', + }, + { + command='noremenu', + flags=RANGE+NOTADR+ZEROR+BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='noswapfile', + flags=NEEDARG+EXTRA+NOTRLCOM, + func='ex_wrongmodifier', + }, + { + command='normal', + flags=RANGE+BANG+EXTRA+NEEDARG+NOTRLCOM+USECTRLV+SBOXOK+CMDWIN, + func='ex_normal', + }, + { + command='number', + flags=RANGE+WHOLEFOLD+COUNT+EXFLAGS+TRLBAR+CMDWIN, + func='ex_print', + }, + { + command='nunmap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_unmap', + }, + { + command='nunmenu', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='open', + flags=RANGE+BANG+EXTRA, + func='ex_open', + }, + { + command='oldfiles', + flags=BANG+TRLBAR+SBOXOK+CMDWIN, + func='ex_oldfiles', + }, + { + command='omap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_map', + }, + { + command='omapclear', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_mapclear', + }, + { + command='omenu', + flags=RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='only', + flags=BANG+TRLBAR, + func='ex_only', + }, + { + command='onoremap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_map', + }, + { + command='onoremenu', + flags=RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='options', + flags=TRLBAR, + func='ex_options', + }, + { + command='ounmap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_unmap', + }, + { + command='ounmenu', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='ownsyntax', + flags=EXTRA+NOTRLCOM+SBOXOK+CMDWIN, + func='ex_ownsyntax', + }, + { + command='print', + flags=RANGE+WHOLEFOLD+COUNT+EXFLAGS+TRLBAR+CMDWIN+SBOXOK, + func='ex_print', + }, + { + command='pclose', + flags=BANG+TRLBAR, + func='ex_pclose', + }, + { + command='pedit', + flags=BANG+FILE1+EDITCMD+ARGOPT+TRLBAR, + func='ex_pedit', + }, + { + command='pop', + flags=RANGE+NOTADR+BANG+COUNT+TRLBAR+ZEROR, + func='ex_tag', + }, + { + command='popup', + flags=NEEDARG+EXTRA+BANG+TRLBAR+NOTRLCOM+CMDWIN, + func='ex_popup', + }, + { + command='ppop', + flags=RANGE+NOTADR+BANG+COUNT+TRLBAR+ZEROR, + func='ex_ptag', + }, + { + command='preserve', + flags=TRLBAR, + func='ex_preserve', + }, + { + command='previous', + flags=EXTRA+RANGE+NOTADR+COUNT+BANG+EDITCMD+ARGOPT+TRLBAR, + func='ex_previous', + }, + { + command='promptfind', + flags=EXTRA+NOTRLCOM+CMDWIN, + func='gui_mch_find_dialog', + }, + { + command='promptrepl', + flags=EXTRA+NOTRLCOM+CMDWIN, + func='gui_mch_replace_dialog', + }, + { + command='profile', + flags=BANG+EXTRA+TRLBAR+CMDWIN, + func='ex_profile', + }, + { + command='profdel', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_breakdel', + }, + { + command='psearch', + flags=BANG+RANGE+WHOLEFOLD+DFLALL+EXTRA, + func='ex_psearch', + }, + { + command='ptag', + flags=RANGE+NOTADR+BANG+WORD1+TRLBAR+ZEROR, + func='ex_ptag', + }, + { + command='ptNext', + flags=RANGE+NOTADR+BANG+TRLBAR+ZEROR, + func='ex_ptag', + }, + { + command='ptfirst', + flags=RANGE+NOTADR+BANG+TRLBAR+ZEROR, + func='ex_ptag', + }, + { + command='ptjump', + flags=BANG+TRLBAR+WORD1, + func='ex_ptag', + }, + { + command='ptlast', + flags=BANG+TRLBAR, + func='ex_ptag', + }, + { + command='ptnext', + flags=RANGE+NOTADR+BANG+TRLBAR+ZEROR, + func='ex_ptag', + }, + { + command='ptprevious', + flags=RANGE+NOTADR+BANG+TRLBAR+ZEROR, + func='ex_ptag', + }, + { + command='ptrewind', + flags=RANGE+NOTADR+BANG+TRLBAR+ZEROR, + func='ex_ptag', + }, + { + command='ptselect', + flags=BANG+TRLBAR+WORD1, + func='ex_ptag', + }, + { + command='put', + flags=RANGE+WHOLEFOLD+BANG+REGSTR+TRLBAR+ZEROR+CMDWIN+MODIFY, + func='ex_put', + }, + { + command='pwd', + flags=TRLBAR+CMDWIN, + func='ex_pwd', + }, + { + command='python', + flags=RANGE+EXTRA+NEEDARG+CMDWIN, + func='ex_python', + }, + { + command='pydo', + flags=RANGE+DFLALL+EXTRA+NEEDARG+CMDWIN, + func='ex_pydo', + }, + { + command='pyfile', + flags=RANGE+FILE1+NEEDARG+CMDWIN, + func='ex_pyfile', + }, + { + command='quit', + flags=BANG+TRLBAR+CMDWIN, + func='ex_quit', + }, + { + command='quitall', + flags=BANG+TRLBAR, + func='ex_quit_all', + }, + { + command='qall', + flags=BANG+TRLBAR+CMDWIN, + func='ex_quit_all', + }, + { + command='read', + flags=BANG+RANGE+WHOLEFOLD+FILE1+ARGOPT+TRLBAR+ZEROR+CMDWIN+MODIFY, + func='ex_read', + }, + { + command='recover', + flags=BANG+FILE1+TRLBAR, + func='ex_recover', + }, + { + command='redo', + flags=TRLBAR+CMDWIN, + func='ex_redo', + }, + { + command='redir', + flags=BANG+FILES+TRLBAR+CMDWIN, + func='ex_redir', + }, + { + command='redraw', + flags=BANG+TRLBAR+CMDWIN, + func='ex_redraw', + }, + { + command='redrawstatus', + flags=BANG+TRLBAR+CMDWIN, + func='ex_redrawstatus', + }, + { + command='registers', + flags=EXTRA+NOTRLCOM+TRLBAR+CMDWIN, + func='ex_display', + }, + { + command='resize', + flags=RANGE+NOTADR+TRLBAR+WORD1, + func='ex_resize', + }, + { + command='retab', + flags=TRLBAR+RANGE+WHOLEFOLD+DFLALL+BANG+WORD1+CMDWIN+MODIFY, + func='ex_retab', + }, + { + command='return', + flags=EXTRA+NOTRLCOM+SBOXOK+CMDWIN, + func='ex_return', + }, + { + command='rewind', + flags=EXTRA+BANG+EDITCMD+ARGOPT+TRLBAR, + func='ex_rewind', + }, + { + command='right', + flags=TRLBAR+RANGE+WHOLEFOLD+EXTRA+CMDWIN+MODIFY, + func='ex_align', + }, + { + command='rightbelow', + flags=NEEDARG+EXTRA+NOTRLCOM, + func='ex_wrongmodifier', + }, + { + command='runtime', + flags=BANG+NEEDARG+FILES+TRLBAR+SBOXOK+CMDWIN, + func='ex_runtime', + }, + { + command='rundo', + flags=NEEDARG+FILE1, + func='ex_rundo', + }, + { + command='rviminfo', + flags=BANG+FILE1+TRLBAR+CMDWIN, + func='ex_viminfo', + }, + { + command='substitute', + flags=RANGE+WHOLEFOLD+EXTRA+CMDWIN, + func='do_sub', + }, + { + command='sNext', + flags=EXTRA+RANGE+NOTADR+COUNT+BANG+EDITCMD+ARGOPT+TRLBAR, + func='ex_previous', + }, + { + command='sargument', + flags=BANG+RANGE+NOTADR+COUNT+EXTRA+EDITCMD+ARGOPT+TRLBAR, + func='ex_argument', + }, + { + command='sall', + flags=BANG+RANGE+NOTADR+COUNT+TRLBAR, + func='ex_all', + }, + { + command='sandbox', + flags=NEEDARG+EXTRA+NOTRLCOM, + func='ex_wrongmodifier', + }, + { + command='saveas', + flags=BANG+DFLALL+FILE1+ARGOPT+CMDWIN+TRLBAR, + func='ex_write', + }, + { + command='sbuffer', + flags=BANG+RANGE+NOTADR+BUFNAME+BUFUNL+COUNT+EXTRA+TRLBAR, + func='ex_buffer', + }, + { + command='sbNext', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='ex_bprevious', + }, + { + command='sball', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='ex_buffer_all', + }, + { + command='sbfirst', + flags=TRLBAR, + func='ex_brewind', + }, + { + command='sblast', + flags=TRLBAR, + func='ex_blast', + }, + { + command='sbmodified', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='ex_bmodified', + }, + { + command='sbnext', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='ex_bnext', + }, + { + command='sbprevious', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='ex_bprevious', + }, + { + command='sbrewind', + flags=TRLBAR, + func='ex_brewind', + }, + { + command='scriptnames', + flags=TRLBAR+CMDWIN, + func='ex_scriptnames', + }, + { + command='scriptencoding', + flags=WORD1+TRLBAR+CMDWIN, + func='ex_scriptencoding', + }, + { + command='scscope', + flags=EXTRA+NOTRLCOM, + func='do_scscope', + }, + { + command='set', + flags=TRLBAR+EXTRA+CMDWIN+SBOXOK, + func='ex_set', + }, + { + command='setfiletype', + flags=TRLBAR+EXTRA+NEEDARG+CMDWIN, + func='ex_setfiletype', + }, + { + command='setglobal', + flags=TRLBAR+EXTRA+CMDWIN+SBOXOK, + func='ex_set', + }, + { + command='setlocal', + flags=TRLBAR+EXTRA+CMDWIN+SBOXOK, + func='ex_set', + }, + { + command='sfind', + flags=BANG+FILE1+RANGE+NOTADR+EDITCMD+ARGOPT+TRLBAR, + func='ex_splitview', + }, + { + command='sfirst', + flags=EXTRA+BANG+EDITCMD+ARGOPT+TRLBAR, + func='ex_rewind', + }, + { + command='simalt', + flags=NEEDARG+WORD1+TRLBAR+CMDWIN, + func='ex_simalt', + }, + { + command='sign', + flags=NEEDARG+RANGE+NOTADR+EXTRA+CMDWIN, + func='ex_sign', + }, + { + command='silent', + flags=NEEDARG+EXTRA+BANG+NOTRLCOM+SBOXOK+CMDWIN, + func='ex_wrongmodifier', + }, + { + command='sleep', + flags=RANGE+NOTADR+COUNT+EXTRA+TRLBAR+CMDWIN, + func='ex_sleep', + }, + { + command='slast', + flags=EXTRA+BANG+EDITCMD+ARGOPT+TRLBAR, + func='ex_last', + }, + { + command='smagic', + flags=RANGE+WHOLEFOLD+EXTRA+CMDWIN, + func='ex_submagic', + }, + { + command='smap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_map', + }, + { + command='smapclear', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_mapclear', + }, + { + command='smenu', + flags=RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='snext', + flags=RANGE+NOTADR+BANG+FILES+EDITCMD+ARGOPT+TRLBAR, + func='ex_next', + }, + { + command='snomagic', + flags=RANGE+WHOLEFOLD+EXTRA+CMDWIN, + func='ex_submagic', + }, + { + command='snoremap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_map', + }, + { + command='snoremenu', + flags=RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='source', + flags=BANG+FILE1+TRLBAR+SBOXOK+CMDWIN, + func='ex_source', + }, + { + command='sort', + flags=RANGE+DFLALL+WHOLEFOLD+BANG+EXTRA+NOTRLCOM+MODIFY, + func='ex_sort', + }, + { + command='split', + flags=BANG+FILE1+RANGE+NOTADR+EDITCMD+ARGOPT+TRLBAR, + func='ex_splitview', + }, + { + command='spellgood', + flags=BANG+RANGE+NOTADR+NEEDARG+EXTRA+TRLBAR, + func='ex_spell', + }, + { + command='spelldump', + flags=BANG+TRLBAR, + func='ex_spelldump', + }, + { + command='spellinfo', + flags=TRLBAR, + func='ex_spellinfo', + }, + { + command='spellrepall', + flags=TRLBAR, + func='ex_spellrepall', + }, + { + command='spellundo', + flags=BANG+RANGE+NOTADR+NEEDARG+EXTRA+TRLBAR, + func='ex_spell', + }, + { + command='spellwrong', + flags=BANG+RANGE+NOTADR+NEEDARG+EXTRA+TRLBAR, + func='ex_spell', + }, + { + command='sprevious', + flags=EXTRA+RANGE+NOTADR+COUNT+BANG+EDITCMD+ARGOPT+TRLBAR, + func='ex_previous', + }, + { + command='srewind', + flags=EXTRA+BANG+EDITCMD+ARGOPT+TRLBAR, + func='ex_rewind', + }, + { + command='stop', + flags=TRLBAR+BANG+CMDWIN, + func='ex_stop', + }, + { + command='stag', + flags=RANGE+NOTADR+BANG+WORD1+TRLBAR+ZEROR, + func='ex_stag', + }, + { + command='startinsert', + flags=BANG+TRLBAR+CMDWIN, + func='ex_startinsert', + }, + { + command='startgreplace', + flags=BANG+TRLBAR+CMDWIN, + func='ex_startinsert', + }, + { + command='startreplace', + flags=BANG+TRLBAR+CMDWIN, + func='ex_startinsert', + }, + { + command='stopinsert', + flags=BANG+TRLBAR+CMDWIN, + func='ex_stopinsert', + }, + { + command='stjump', + flags=BANG+TRLBAR+WORD1, + func='ex_stag', + }, + { + command='stselect', + flags=BANG+TRLBAR+WORD1, + func='ex_stag', + }, + { + command='sunhide', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='ex_buffer_all', + }, + { + command='sunmap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_unmap', + }, + { + command='sunmenu', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='suspend', + flags=TRLBAR+BANG+CMDWIN, + func='ex_stop', + }, + { + command='sview', + flags=BANG+FILE1+RANGE+NOTADR+EDITCMD+ARGOPT+TRLBAR, + func='ex_splitview', + }, + { + command='swapname', + flags=TRLBAR+CMDWIN, + func='ex_swapname', + }, + { + command='syntax', + flags=EXTRA+NOTRLCOM+CMDWIN, + func='ex_syntax', + }, + { + command='syntime', + flags=NEEDARG+WORD1+TRLBAR+CMDWIN, + func='ex_syntime', + }, + { + command='syncbind', + flags=TRLBAR, + func='ex_syncbind', + }, + { + command='t', + flags=RANGE+WHOLEFOLD+EXTRA+TRLBAR+CMDWIN+MODIFY, + func='ex_copymove', + }, + { + command='tNext', + flags=RANGE+NOTADR+BANG+TRLBAR+ZEROR, + func='ex_tag', + }, + { + command='tag', + flags=RANGE+NOTADR+BANG+WORD1+TRLBAR+ZEROR, + func='ex_tag', + }, + { + command='tags', + flags=TRLBAR+CMDWIN, + func='do_tags', + }, + { + command='tab', + flags=NEEDARG+EXTRA+NOTRLCOM, + func='ex_wrongmodifier', + }, + { + command='tabclose', + flags=RANGE+NOTADR+COUNT+BANG+TRLBAR+CMDWIN, + func='ex_tabclose', + }, + { + command='tabdo', + flags=NEEDARG+EXTRA+NOTRLCOM, + func='ex_listdo', + }, + { + command='tabedit', + flags=BANG+FILE1+RANGE+NOTADR+ZEROR+EDITCMD+ARGOPT+TRLBAR, + func='ex_splitview', + }, + { + command='tabfind', + flags=BANG+FILE1+RANGE+NOTADR+ZEROR+EDITCMD+ARGOPT+NEEDARG+TRLBAR, + func='ex_splitview', + }, + { + command='tabfirst', + flags=TRLBAR, + func='ex_tabnext', + }, + { + command='tabmove', + flags=RANGE+NOTADR+ZEROR+EXTRA+NOSPC+TRLBAR, + func='ex_tabmove', + }, + { + command='tablast', + flags=TRLBAR, + func='ex_tabnext', + }, + { + command='tabnext', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='ex_tabnext', + }, + { + command='tabnew', + flags=BANG+FILE1+RANGE+NOTADR+ZEROR+EDITCMD+ARGOPT+TRLBAR, + func='ex_splitview', + }, + { + command='tabonly', + flags=BANG+TRLBAR+CMDWIN, + func='ex_tabonly', + }, + { + command='tabprevious', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='ex_tabnext', + }, + { + command='tabNext', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='ex_tabnext', + }, + { + command='tabrewind', + flags=TRLBAR, + func='ex_tabnext', + }, + { + command='tabs', + flags=TRLBAR+CMDWIN, + func='ex_tabs', + }, + { + command='tearoff', + flags=NEEDARG+EXTRA+TRLBAR+NOTRLCOM+CMDWIN, + func='ex_tearoff', + }, + { + command='tfirst', + flags=RANGE+NOTADR+BANG+TRLBAR+ZEROR, + func='ex_tag', + }, + { + command='throw', + flags=EXTRA+NEEDARG+SBOXOK+CMDWIN, + func='ex_throw', + }, + { + command='tjump', + flags=BANG+TRLBAR+WORD1, + func='ex_tag', + }, + { + command='tlast', + flags=BANG+TRLBAR, + func='ex_tag', + }, + { + command='tmenu', + flags=RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='tnext', + flags=RANGE+NOTADR+BANG+TRLBAR+ZEROR, + func='ex_tag', + }, + { + command='topleft', + flags=NEEDARG+EXTRA+NOTRLCOM, + func='ex_wrongmodifier', + }, + { + command='tprevious', + flags=RANGE+NOTADR+BANG+TRLBAR+ZEROR, + func='ex_tag', + }, + { + command='trewind', + flags=RANGE+NOTADR+BANG+TRLBAR+ZEROR, + func='ex_tag', + }, + { + command='try', + flags=TRLBAR+SBOXOK+CMDWIN, + func='ex_try', + }, + { + command='tselect', + flags=BANG+TRLBAR+WORD1, + func='ex_tag', + }, + { + command='tunmenu', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='undo', + flags=RANGE+NOTADR+COUNT+ZEROR+TRLBAR+CMDWIN, + func='ex_undo', + }, + { + command='undojoin', + flags=TRLBAR+CMDWIN, + func='ex_undojoin', + }, + { + command='undolist', + flags=TRLBAR+CMDWIN, + func='ex_undolist', + }, + { + command='unabbreviate', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_abbreviate', + }, + { + command='unhide', + flags=RANGE+NOTADR+COUNT+TRLBAR, + func='ex_buffer_all', + }, + { + command='unlet', + flags=BANG+EXTRA+NEEDARG+SBOXOK+CMDWIN, + func='ex_unlet', + }, + { + command='unlockvar', + flags=BANG+EXTRA+NEEDARG+SBOXOK+CMDWIN, + func='ex_lockvar', + }, + { + command='unmap', + flags=BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_unmap', + }, + { + command='unmenu', + flags=BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='unsilent', + flags=NEEDARG+EXTRA+NOTRLCOM+SBOXOK+CMDWIN, + func='ex_wrongmodifier', + }, + { + command='update', + flags=RANGE+WHOLEFOLD+BANG+FILE1+ARGOPT+DFLALL+TRLBAR, + func='ex_update', + }, + { + command='vglobal', + flags=RANGE+WHOLEFOLD+EXTRA+DFLALL+CMDWIN, + func='ex_global', + }, + { + command='version', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_version', + }, + { + command='verbose', + flags=NEEDARG+RANGE+NOTADR+EXTRA+NOTRLCOM+SBOXOK+CMDWIN, + func='ex_wrongmodifier', + }, + { + command='vertical', + flags=NEEDARG+EXTRA+NOTRLCOM, + func='ex_wrongmodifier', + }, + { + command='visual', + flags=BANG+FILE1+EDITCMD+ARGOPT+TRLBAR, + func='ex_edit', + }, + { + command='view', + flags=BANG+FILE1+EDITCMD+ARGOPT+TRLBAR, + func='ex_edit', + }, + { + command='vimgrep', + flags=RANGE+NOTADR+BANG+NEEDARG+EXTRA+NOTRLCOM+TRLBAR+XFILE, + func='ex_vimgrep', + }, + { + command='vimgrepadd', + flags=RANGE+NOTADR+BANG+NEEDARG+EXTRA+NOTRLCOM+TRLBAR+XFILE, + func='ex_vimgrep', + }, + { + command='viusage', + flags=TRLBAR, + func='ex_viusage', + }, + { + command='vmap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_map', + }, + { + command='vmapclear', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_mapclear', + }, + { + command='vmenu', + flags=RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='vnoremap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_map', + }, + { + command='vnew', + flags=BANG+FILE1+RANGE+NOTADR+EDITCMD+ARGOPT+TRLBAR, + func='ex_splitview', + }, + { + command='vnoremenu', + flags=RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='vsplit', + flags=BANG+FILE1+RANGE+NOTADR+EDITCMD+ARGOPT+TRLBAR, + func='ex_splitview', + }, + { + command='vunmap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_unmap', + }, + { + command='vunmenu', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='write', + flags=RANGE+WHOLEFOLD+BANG+FILE1+ARGOPT+DFLALL+TRLBAR+CMDWIN, + func='ex_write', + }, + { + command='wNext', + flags=RANGE+WHOLEFOLD+NOTADR+BANG+FILE1+ARGOPT+TRLBAR, + func='ex_wnext', + }, + { + command='wall', + flags=BANG+TRLBAR+CMDWIN, + func='do_wqall', + }, + { + command='while', + flags=EXTRA+NOTRLCOM+SBOXOK+CMDWIN, + func='ex_while', + }, + { + command='winsize', + flags=EXTRA+NEEDARG+TRLBAR, + func='ex_winsize', + }, + { + command='wincmd', + flags=NEEDARG+WORD1+RANGE+NOTADR, + func='ex_wincmd', + }, + { + command='windo', + flags=BANG+NEEDARG+EXTRA+NOTRLCOM, + func='ex_listdo', + }, + { + command='winpos', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_winpos', + }, + { + command='wnext', + flags=RANGE+NOTADR+BANG+FILE1+ARGOPT+TRLBAR, + func='ex_wnext', + }, + { + command='wprevious', + flags=RANGE+NOTADR+BANG+FILE1+ARGOPT+TRLBAR, + func='ex_wnext', + }, + { + command='wq', + flags=RANGE+WHOLEFOLD+BANG+FILE1+ARGOPT+DFLALL+TRLBAR, + func='ex_exit', + }, + { + command='wqall', + flags=BANG+FILE1+ARGOPT+DFLALL+TRLBAR, + func='do_wqall', + }, + { + command='wsverb', + flags=EXTRA+NOTADR+NEEDARG, + func='ex_wsverb', + }, + { + command='wundo', + flags=BANG+NEEDARG+FILE1, + func='ex_wundo', + }, + { + command='wviminfo', + flags=BANG+FILE1+TRLBAR+CMDWIN, + func='ex_viminfo', + }, + { + command='xit', + flags=RANGE+WHOLEFOLD+BANG+FILE1+ARGOPT+DFLALL+TRLBAR+CMDWIN, + func='ex_exit', + }, + { + command='xall', + flags=BANG+TRLBAR, + func='do_wqall', + }, + { + command='xmap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_map', + }, + { + command='xmapclear', + flags=EXTRA+TRLBAR+CMDWIN, + func='ex_mapclear', + }, + { + command='xmenu', + flags=RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='xnoremap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_map', + }, + { + command='xnoremenu', + flags=RANGE+NOTADR+ZEROR+EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='xunmap', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_unmap', + }, + { + command='xunmenu', + flags=EXTRA+TRLBAR+NOTRLCOM+USECTRLV+CMDWIN, + func='ex_menu', + }, + { + command='yank', + flags=RANGE+WHOLEFOLD+REGSTR+COUNT+TRLBAR+CMDWIN, + func='ex_operators', + }, + { + command='z', + flags=RANGE+WHOLEFOLD+EXTRA+EXFLAGS+TRLBAR+CMDWIN, + func='ex_z', + }, + { + command='!', + enum='CMD_bang', + flags=RANGE+WHOLEFOLD+BANG+FILES+CMDWIN, + func='ex_bang', + }, + { + command='#', + enum='CMD_pound', + flags=RANGE+WHOLEFOLD+COUNT+EXFLAGS+TRLBAR+CMDWIN, + func='ex_print', + }, + { + command='&', + enum='CMD_and', + flags=RANGE+WHOLEFOLD+EXTRA+CMDWIN+MODIFY, + func='do_sub', + }, + { + command='*', + enum='CMD_star', + flags=RANGE+WHOLEFOLD+EXTRA+TRLBAR+CMDWIN, + func='ex_at', + }, + { + command='<', + enum='CMD_lshift', + flags=RANGE+WHOLEFOLD+COUNT+EXFLAGS+TRLBAR+CMDWIN+MODIFY, + func='ex_operators', + }, + { + command='=', + enum='CMD_equal', + flags=RANGE+TRLBAR+DFLALL+EXFLAGS+CMDWIN, + func='ex_equal', + }, + { + command='>', + enum='CMD_rshift', + flags=RANGE+WHOLEFOLD+COUNT+EXFLAGS+TRLBAR+CMDWIN+MODIFY, + func='ex_operators', + }, + { + command='@', + enum='CMD_at', + flags=RANGE+WHOLEFOLD+EXTRA+TRLBAR+CMDWIN, + func='ex_at', + }, + { + command='Next', + flags=EXTRA+RANGE+NOTADR+COUNT+BANG+EDITCMD+ARGOPT+TRLBAR, + func='ex_previous', + }, + { + command='Print', + flags=RANGE+WHOLEFOLD+COUNT+EXFLAGS+TRLBAR+CMDWIN, + func='ex_print', + }, + { + command='~', + enum='CMD_tilde', + flags=RANGE+WHOLEFOLD+EXTRA+CMDWIN+MODIFY, + func='do_sub', + }, +} diff --git a/src/nvim/ex_cmds_defs.h b/src/nvim/ex_cmds_defs.h index 52e8bb7465..66c42a7111 100644 --- a/src/nvim/ex_cmds_defs.h +++ b/src/nvim/ex_cmds_defs.h @@ -4,35 +4,23 @@ * Do ":help uganda" in Vim to read copying and usage conditions. * Do ":help credits" in Vim to see a list of people who contributed. */ - -#if (!defined(DO_DECLARE_EXCMD) && !defined(NVIM_EX_CMDS_DEFS_H)) \ - || (defined(DO_DECLARE_EXCMD) && \ - !defined(NVIM_EX_CMDS_DEFS_H_DO_DECLARE_EXCMD)) -#ifdef DO_DECLARE_EXCMD -# define NVIM_EX_CMDS_DEFS_H_DO_DECLARE_EXCMD -#else -# define NVIM_EX_CMDS_DEFS_H -#endif +#ifndef NVIM_EX_CMDS_DEFS_H +#define NVIM_EX_CMDS_DEFS_H #include <stdbool.h> #include "nvim/pos.h" // for linenr_T #include "nvim/normal.h" -/* - * This file defines the Ex commands. - * When DO_DECLARE_EXCMD is defined, the table with ex command names and - * options results. - * When DO_DECLARE_EXCMD is NOT defined, the enum with all the Ex commands - * results. - * This clever trick was invented by Ron Aaron. - */ +#ifdef INCLUDE_GENERATED_DECLARATIONS +# include "ex_cmds_enum.generated.h" +#endif /* * When adding an Ex command: - * 1. Add an entry in the table below. Keep it sorted on the shortest - * version of the command name that works. If it doesn't start with a - * lower case letter, add it at the end. + * 1. Add an entry to the table in src/nvim/ex_cmds.lua. Keep it sorted on the + * shortest version of the command name that works. If it doesn't start with + * a lower case letter, add it at the end. * 2. Add a "case: CMD_xxx" in the big switch in ex_docmd.c. * 3. Add an entry in the index for Ex commands at ":help ex-cmd-index". * 4. Add documentation in ../doc/xxx.txt. Add a tag for both the short and @@ -67,1093 +55,56 @@ #define WORD1 (EXTRA | NOSPC) /* one extra word allowed */ #define FILE1 (FILES | NOSPC) /* 1 file allowed, defaults to current file */ -#ifndef DO_DECLARE_EXCMD typedef struct exarg exarg_T; -#endif /* behavior for bad character, "++bad=" argument */ #define BAD_REPLACE '?' /* replace it with '?' (default) */ #define BAD_KEEP -1 /* leave it */ #define BAD_DROP -2 /* erase it */ -/* - * This array maps ex command names to command codes. - * The order in which command names are listed below is significant -- - * ambiguous abbreviations are always resolved to be the first possible match - * (e.g. "r" is taken to mean "read", not "rewind", because "read" comes - * before "rewind"). - * Not supported commands are included to avoid ambiguities. - */ -#ifdef EX -# undef EX /* just in case */ -#endif -#ifdef DO_DECLARE_EXCMD -# define EX(a, b, c, d) {(char_u *)b, c, (long_u)(d)} - typedef void (*ex_func_T)(exarg_T *eap); -static struct cmdname { - char_u *cmd_name; /* name of the command */ - ex_func_T cmd_func; /* function for this command */ - long_u cmd_argt; /* flags declared above */ -} -cmdnames[] = -#else -# define EX(a, b, c, d) a -enum CMD_index -#endif -{ - EX(CMD_append, "append", ex_append, - BANG|RANGE|ZEROR|TRLBAR|CMDWIN|MODIFY), - EX(CMD_abbreviate, "abbreviate", ex_abbreviate, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_abclear, "abclear", ex_abclear, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_aboveleft, "aboveleft", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_all, "all", ex_all, - BANG|RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_amenu, "amenu", ex_menu, - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_anoremenu, "anoremenu", ex_menu, - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_args, "args", ex_args, - BANG|FILES|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_argadd, "argadd", ex_argadd, - BANG|NEEDARG|RANGE|NOTADR|ZEROR|FILES|TRLBAR), - EX(CMD_argdelete, "argdelete", ex_argdelete, - BANG|RANGE|NOTADR|FILES|TRLBAR), - EX(CMD_argdo, "argdo", ex_listdo, - BANG|NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_argedit, "argedit", ex_argedit, - BANG|NEEDARG|RANGE|NOTADR|FILE1|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_argglobal, "argglobal", ex_args, - BANG|FILES|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_arglocal, "arglocal", ex_args, - BANG|FILES|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_argument, "argument", ex_argument, - BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_ascii, "ascii", do_ascii, - TRLBAR|SBOXOK|CMDWIN), - EX(CMD_autocmd, "autocmd", ex_autocmd, - BANG|EXTRA|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_augroup, "augroup", ex_autocmd, - BANG|WORD1|TRLBAR|CMDWIN), - EX(CMD_aunmenu, "aunmenu", ex_menu, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_buffer, "buffer", ex_buffer, - BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR), - EX(CMD_bNext, "bNext", ex_bprevious, - BANG|RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_ball, "ball", ex_buffer_all, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_badd, "badd", ex_edit, - NEEDARG|FILE1|EDITCMD|TRLBAR|CMDWIN), - EX(CMD_bdelete, "bdelete", ex_bunload, - BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR), - EX(CMD_behave, "behave", ex_behave, - NEEDARG|WORD1|TRLBAR|CMDWIN), - EX(CMD_belowright, "belowright", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_bfirst, "bfirst", ex_brewind, - BANG|RANGE|NOTADR|TRLBAR), - EX(CMD_blast, "blast", ex_blast, - BANG|RANGE|NOTADR|TRLBAR), - EX(CMD_bmodified, "bmodified", ex_bmodified, - BANG|RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_bnext, "bnext", ex_bnext, - BANG|RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_botright, "botright", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_bprevious, "bprevious", ex_bprevious, - BANG|RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_brewind, "brewind", ex_brewind, - BANG|RANGE|NOTADR|TRLBAR), - EX(CMD_break, "break", ex_break, - TRLBAR|SBOXOK|CMDWIN), - EX(CMD_breakadd, "breakadd", ex_breakadd, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_breakdel, "breakdel", ex_breakdel, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_breaklist, "breaklist", ex_breaklist, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_browse, "browse", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM|CMDWIN), - EX(CMD_buffers, "buffers", buflist_list, - BANG|TRLBAR|CMDWIN), - EX(CMD_bufdo, "bufdo", ex_listdo, - BANG|NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_bunload, "bunload", ex_bunload, - BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR), - EX(CMD_bwipeout, "bwipeout", ex_bunload, - BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR), - EX(CMD_change, "change", ex_change, - BANG|WHOLEFOLD|RANGE|COUNT|TRLBAR|CMDWIN|MODIFY), - EX(CMD_cNext, "cNext", ex_cnext, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_cNfile, "cNfile", ex_cnext, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_cabbrev, "cabbrev", ex_abbreviate, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_cabclear, "cabclear", ex_abclear, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_caddbuffer, "caddbuffer", ex_cbuffer, - RANGE|NOTADR|WORD1|TRLBAR), - EX(CMD_caddexpr, "caddexpr", ex_cexpr, - NEEDARG|WORD1|NOTRLCOM|TRLBAR), - EX(CMD_caddfile, "caddfile", ex_cfile, - TRLBAR|FILE1), - EX(CMD_call, "call", ex_call, - RANGE|NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN), - EX(CMD_catch, "catch", ex_catch, - EXTRA|SBOXOK|CMDWIN), - EX(CMD_cbuffer, "cbuffer", ex_cbuffer, - BANG|RANGE|NOTADR|WORD1|TRLBAR), - EX(CMD_cc, "cc", ex_cc, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_cclose, "cclose", ex_cclose, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_cd, "cd", ex_cd, - BANG|FILE1|TRLBAR|CMDWIN), - EX(CMD_center, "center", ex_align, - TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY), - EX(CMD_cexpr, "cexpr", ex_cexpr, - NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG), - EX(CMD_cfile, "cfile", ex_cfile, - TRLBAR|FILE1|BANG), - EX(CMD_cfirst, "cfirst", ex_cc, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_cgetfile, "cgetfile", ex_cfile, - TRLBAR|FILE1), - EX(CMD_cgetbuffer, "cgetbuffer", ex_cbuffer, - RANGE|NOTADR|WORD1|TRLBAR), - EX(CMD_cgetexpr, "cgetexpr", ex_cexpr, - NEEDARG|WORD1|NOTRLCOM|TRLBAR), - EX(CMD_chdir, "chdir", ex_cd, - BANG|FILE1|TRLBAR|CMDWIN), - EX(CMD_changes, "changes", ex_changes, - TRLBAR|CMDWIN), - EX(CMD_checkpath, "checkpath", ex_checkpath, - TRLBAR|BANG|CMDWIN), - EX(CMD_checktime, "checktime", ex_checktime, - RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR), - EX(CMD_clist, "clist", qf_list, - BANG|EXTRA|TRLBAR|CMDWIN), - EX(CMD_clast, "clast", ex_cc, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_close, "close", ex_close, - BANG|TRLBAR|CMDWIN), - EX(CMD_cmap, "cmap", ex_map, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_cmapclear, "cmapclear", ex_mapclear, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_cmenu, "cmenu", ex_menu, - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_cnext, "cnext", ex_cnext, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_cnewer, "cnewer", qf_age, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_cnfile, "cnfile", ex_cnext, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_cnoremap, "cnoremap", ex_map, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_cnoreabbrev, "cnoreabbrev", ex_abbreviate, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_cnoremenu, "cnoremenu", ex_menu, - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_copy, "copy", ex_copymove, - RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY), - EX(CMD_colder, "colder", qf_age, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_colorscheme, "colorscheme", ex_colorscheme, - WORD1|TRLBAR|CMDWIN), - EX(CMD_command, "command", ex_command, - EXTRA|BANG|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_comclear, "comclear", ex_comclear, - TRLBAR|CMDWIN), - EX(CMD_compiler, "compiler", ex_compiler, - BANG|TRLBAR|WORD1|CMDWIN), - EX(CMD_continue, "continue", ex_continue, - TRLBAR|SBOXOK|CMDWIN), - EX(CMD_confirm, "confirm", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM|CMDWIN), - EX(CMD_copen, "copen", ex_copen, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_cprevious, "cprevious", ex_cnext, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_cpfile, "cpfile", ex_cnext, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_cquit, "cquit", ex_cquit, - TRLBAR|BANG), - EX(CMD_crewind, "crewind", ex_cc, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_cscope, "cscope", do_cscope, - EXTRA|NOTRLCOM|XFILE), - EX(CMD_cstag, "cstag", do_cstag, - BANG|TRLBAR|WORD1), - EX(CMD_cunmap, "cunmap", ex_unmap, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_cunabbrev, "cunabbrev", ex_abbreviate, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_cunmenu, "cunmenu", ex_menu, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_cwindow, "cwindow", ex_cwindow, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_delete, "delete", ex_operators, - RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN|MODIFY), - EX(CMD_delmarks, "delmarks", ex_delmarks, - BANG|EXTRA|TRLBAR|CMDWIN), - EX(CMD_debug, "debug", ex_debug, - NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN), - EX(CMD_debuggreedy, "debuggreedy", ex_debuggreedy, - RANGE|NOTADR|ZEROR|TRLBAR|CMDWIN), - EX(CMD_delcommand, "delcommand", ex_delcommand, - NEEDARG|WORD1|TRLBAR|CMDWIN), - EX(CMD_delfunction, "delfunction", ex_delfunction, - NEEDARG|WORD1|CMDWIN), - EX(CMD_display, "display", ex_display, - EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN), - EX(CMD_diffupdate, "diffupdate", ex_diffupdate, - BANG|TRLBAR), - EX(CMD_diffget, "diffget", ex_diffgetput, - RANGE|EXTRA|TRLBAR|MODIFY), - EX(CMD_diffoff, "diffoff", ex_diffoff, - BANG|TRLBAR), - EX(CMD_diffpatch, "diffpatch", ex_diffpatch, - EXTRA|FILE1|TRLBAR|MODIFY), - EX(CMD_diffput, "diffput", ex_diffgetput, - RANGE|EXTRA|TRLBAR), - EX(CMD_diffsplit, "diffsplit", ex_diffsplit, - EXTRA|FILE1|TRLBAR), - EX(CMD_diffthis, "diffthis", ex_diffthis, - TRLBAR), - EX(CMD_digraphs, "digraphs", ex_digraphs, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_djump, "djump", ex_findpat, - BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA), - EX(CMD_dlist, "dlist", ex_findpat, - BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN), - EX(CMD_doautocmd, "doautocmd", ex_doautocmd, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_doautoall, "doautoall", ex_doautoall, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_drop, "drop", ex_drop, - FILES|EDITCMD|NEEDARG|ARGOPT|TRLBAR), - EX(CMD_dsearch, "dsearch", ex_findpat, - BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN), - EX(CMD_dsplit, "dsplit", ex_findpat, - BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA), - EX(CMD_edit, "edit", ex_edit, - BANG|FILE1|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_earlier, "earlier", ex_later, - TRLBAR|EXTRA|NOSPC|CMDWIN), - EX(CMD_echo, "echo", ex_echo, - EXTRA|NOTRLCOM|SBOXOK|CMDWIN), - EX(CMD_echoerr, "echoerr", ex_execute, - EXTRA|NOTRLCOM|SBOXOK|CMDWIN), - EX(CMD_echohl, "echohl", ex_echohl, - EXTRA|TRLBAR|SBOXOK|CMDWIN), - EX(CMD_echomsg, "echomsg", ex_execute, - EXTRA|NOTRLCOM|SBOXOK|CMDWIN), - EX(CMD_echon, "echon", ex_echo, - EXTRA|NOTRLCOM|SBOXOK|CMDWIN), - EX(CMD_else, "else", ex_else, - TRLBAR|SBOXOK|CMDWIN), - EX(CMD_elseif, "elseif", ex_else, - EXTRA|NOTRLCOM|SBOXOK|CMDWIN), - EX(CMD_emenu, "emenu", ex_emenu, - NEEDARG|EXTRA|TRLBAR|NOTRLCOM|RANGE|NOTADR|CMDWIN), - EX(CMD_endif, "endif", ex_endif, - TRLBAR|SBOXOK|CMDWIN), - EX(CMD_endfunction, "endfunction", ex_endfunction, - TRLBAR|CMDWIN), - EX(CMD_endfor, "endfor", ex_endwhile, - TRLBAR|SBOXOK|CMDWIN), - EX(CMD_endtry, "endtry", ex_endtry, - TRLBAR|SBOXOK|CMDWIN), - EX(CMD_endwhile, "endwhile", ex_endwhile, - TRLBAR|SBOXOK|CMDWIN), - EX(CMD_enew, "enew", ex_edit, - BANG|TRLBAR), - EX(CMD_ex, "ex", ex_edit, - BANG|FILE1|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_execute, "execute", ex_execute, - EXTRA|NOTRLCOM|SBOXOK|CMDWIN), - EX(CMD_exit, "exit", ex_exit, - RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN), - EX(CMD_exusage, "exusage", ex_exusage, - TRLBAR), - EX(CMD_file, "file", ex_file, - RANGE|NOTADR|ZEROR|BANG|FILE1|TRLBAR), - EX(CMD_files, "files", buflist_list, - BANG|TRLBAR|CMDWIN), - EX(CMD_filetype, "filetype", ex_filetype, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_find, "find", ex_find, - RANGE|NOTADR|BANG|FILE1|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_finally, "finally", ex_finally, - TRLBAR|SBOXOK|CMDWIN), - EX(CMD_finish, "finish", ex_finish, - TRLBAR|SBOXOK|CMDWIN), - EX(CMD_first, "first", ex_rewind, - EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_fixdel, "fixdel", do_fixdel, - TRLBAR|CMDWIN), - EX(CMD_fold, "fold", ex_fold, - RANGE|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN), - EX(CMD_foldclose, "foldclose", ex_foldopen, - RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN), - EX(CMD_folddoopen, "folddoopen", ex_folddo, - RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_folddoclosed, "folddoclosed", ex_folddo, - RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_foldopen, "foldopen", ex_foldopen, - RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN), - EX(CMD_for, "for", ex_while, - EXTRA|NOTRLCOM|SBOXOK|CMDWIN), - EX(CMD_function, "function", ex_function, - EXTRA|BANG|CMDWIN), - EX(CMD_global, "global", ex_global, - RANGE|WHOLEFOLD|BANG|EXTRA|DFLALL|SBOXOK|CMDWIN), - EX(CMD_goto, "goto", ex_goto, - RANGE|NOTADR|COUNT|TRLBAR|SBOXOK|CMDWIN), - EX(CMD_grep, "grep", ex_make, - RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), - EX(CMD_grepadd, "grepadd", ex_make, - RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), - EX(CMD_gui, "gui", ex_gui, - BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN), - EX(CMD_gvim, "gvim", ex_gui, - BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN), - EX(CMD_help, "help", ex_help, - BANG|EXTRA|NOTRLCOM), - EX(CMD_helpfind, "helpfind", ex_helpfind, - EXTRA|NOTRLCOM), - EX(CMD_helpgrep, "helpgrep", ex_helpgrep, - EXTRA|NOTRLCOM|NEEDARG), - EX(CMD_helptags, "helptags", ex_helptags, - NEEDARG|FILES|TRLBAR|CMDWIN), - EX(CMD_hardcopy, "hardcopy", ex_hardcopy, - RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG), - EX(CMD_highlight, "highlight", ex_highlight, - BANG|EXTRA|TRLBAR|SBOXOK|CMDWIN), - EX(CMD_hide, "hide", ex_hide, - BANG|EXTRA|NOTRLCOM), - EX(CMD_history, "history", ex_history, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_insert, "insert", ex_append, - BANG|RANGE|TRLBAR|CMDWIN|MODIFY), - EX(CMD_iabbrev, "iabbrev", ex_abbreviate, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_iabclear, "iabclear", ex_abclear, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_if, "if", ex_if, - EXTRA|NOTRLCOM|SBOXOK|CMDWIN), - EX(CMD_ijump, "ijump", ex_findpat, - BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA), - EX(CMD_ilist, "ilist", ex_findpat, - BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN), - EX(CMD_imap, "imap", ex_map, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_imapclear, "imapclear", ex_mapclear, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_imenu, "imenu", ex_menu, - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_inoremap, "inoremap", ex_map, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_inoreabbrev, "inoreabbrev", ex_abbreviate, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_inoremenu, "inoremenu", ex_menu, - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_intro, "intro", ex_intro, - TRLBAR|CMDWIN), - EX(CMD_isearch, "isearch", ex_findpat, - BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN), - EX(CMD_isplit, "isplit", ex_findpat, - BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA), - EX(CMD_iunmap, "iunmap", ex_unmap, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_iunabbrev, "iunabbrev", ex_abbreviate, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_iunmenu, "iunmenu", ex_menu, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_join, "join", ex_join, - BANG|RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY), - EX(CMD_jumps, "jumps", ex_jumps, - TRLBAR|CMDWIN), - EX(CMD_k, "k", ex_mark, - RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN), - EX(CMD_keepmarks, "keepmarks", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_keepjumps, "keepjumps", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_keeppatterns, "keeppatterns", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_keepalt, "keepalt", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_list, "list", ex_print, - RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN), - EX(CMD_lNext, "lNext", ex_cnext, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_lNfile, "lNfile", ex_cnext, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_last, "last", ex_last, - EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_language, "language", ex_language, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_laddexpr, "laddexpr", ex_cexpr, - NEEDARG|WORD1|NOTRLCOM|TRLBAR), - EX(CMD_laddbuffer, "laddbuffer", ex_cbuffer, - RANGE|NOTADR|WORD1|TRLBAR), - EX(CMD_laddfile, "laddfile", ex_cfile, - TRLBAR|FILE1), - EX(CMD_later, "later", ex_later, - TRLBAR|EXTRA|NOSPC|CMDWIN), - EX(CMD_lbuffer, "lbuffer", ex_cbuffer, - BANG|RANGE|NOTADR|WORD1|TRLBAR), - EX(CMD_lcd, "lcd", ex_cd, - BANG|FILE1|TRLBAR|CMDWIN), - EX(CMD_lchdir, "lchdir", ex_cd, - BANG|FILE1|TRLBAR|CMDWIN), - EX(CMD_lclose, "lclose", ex_cclose, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_lcscope, "lcscope", do_cscope, - EXTRA|NOTRLCOM|XFILE), - EX(CMD_left, "left", ex_align, - TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY), - EX(CMD_leftabove, "leftabove", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_let, "let", ex_let, - EXTRA|NOTRLCOM|SBOXOK|CMDWIN), - EX(CMD_lexpr, "lexpr", ex_cexpr, - NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG), - EX(CMD_lfile, "lfile", ex_cfile, - TRLBAR|FILE1|BANG), - EX(CMD_lfirst, "lfirst", ex_cc, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_lgetfile, "lgetfile", ex_cfile, - TRLBAR|FILE1), - EX(CMD_lgetbuffer, "lgetbuffer", ex_cbuffer, - RANGE|NOTADR|WORD1|TRLBAR), - EX(CMD_lgetexpr, "lgetexpr", ex_cexpr, - NEEDARG|WORD1|NOTRLCOM|TRLBAR), - EX(CMD_lgrep, "lgrep", ex_make, - RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), - EX(CMD_lgrepadd, "lgrepadd", ex_make, - RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), - EX(CMD_lhelpgrep, "lhelpgrep", ex_helpgrep, - EXTRA|NOTRLCOM|NEEDARG), - EX(CMD_ll, "ll", ex_cc, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_llast, "llast", ex_cc, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_llist, "llist", qf_list, - BANG|EXTRA|TRLBAR|CMDWIN), - EX(CMD_lmap, "lmap", ex_map, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_lmapclear, "lmapclear", ex_mapclear, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_lmake, "lmake", ex_make, - BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE), - EX(CMD_lnoremap, "lnoremap", ex_map, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_lnext, "lnext", ex_cnext, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_lnewer, "lnewer", qf_age, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_lnfile, "lnfile", ex_cnext, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_loadview, "loadview", ex_loadview, - FILE1|TRLBAR), - EX(CMD_loadkeymap, "loadkeymap", ex_loadkeymap, - CMDWIN), - EX(CMD_lockmarks, "lockmarks", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_lockvar, "lockvar", ex_lockvar, - BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN), - EX(CMD_lolder, "lolder", qf_age, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_lopen, "lopen", ex_copen, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_lprevious, "lprevious", ex_cnext, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_lpfile, "lpfile", ex_cnext, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_lrewind, "lrewind", ex_cc, - RANGE|NOTADR|COUNT|TRLBAR|BANG), - EX(CMD_ltag, "ltag", ex_tag, - NOTADR|TRLBAR|BANG|WORD1), - EX(CMD_lunmap, "lunmap", ex_unmap, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_lvimgrep, "lvimgrep", ex_vimgrep, - RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), - EX(CMD_lvimgrepadd, "lvimgrepadd", ex_vimgrep, - RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), - EX(CMD_lwindow, "lwindow", ex_cwindow, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_ls, "ls", buflist_list, - BANG|TRLBAR|CMDWIN), - EX(CMD_move, "move", ex_copymove, - RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY), - EX(CMD_mark, "mark", ex_mark, - RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN), - EX(CMD_make, "make", ex_make, - BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE), - EX(CMD_map, "map", ex_map, - BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_mapclear, "mapclear", ex_mapclear, - EXTRA|BANG|TRLBAR|CMDWIN), - EX(CMD_marks, "marks", do_marks, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_match, "match", ex_match, - RANGE|NOTADR|EXTRA|CMDWIN), - EX(CMD_menu, "menu", ex_menu, - RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_menutranslate, "menutranslate", ex_menutranslate, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_messages, "messages", ex_messages, - TRLBAR|CMDWIN), - EX(CMD_mkexrc, "mkexrc", ex_mkrc, - BANG|FILE1|TRLBAR|CMDWIN), - EX(CMD_mksession, "mksession", ex_mkrc, - BANG|FILE1|TRLBAR), - EX(CMD_mkspell, "mkspell", ex_mkspell, - BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), - EX(CMD_mkvimrc, "mkvimrc", ex_mkrc, - BANG|FILE1|TRLBAR|CMDWIN), - EX(CMD_mkview, "mkview", ex_mkrc, - BANG|FILE1|TRLBAR), - EX(CMD_mode, "mode", ex_mode, - WORD1|TRLBAR|CMDWIN), - EX(CMD_next, "next", ex_next, - RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_nbkey, "nbkey", ex_nbkey, - EXTRA|NOTADR|NEEDARG), - EX(CMD_nbclose, "nbclose", ex_nbclose, - TRLBAR|CMDWIN), - EX(CMD_nbstart, "nbstart", ex_nbstart, - WORD1|TRLBAR|CMDWIN), - EX(CMD_new, "new", ex_splitview, - BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_nmap, "nmap", ex_map, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_nmapclear, "nmapclear", ex_mapclear, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_nmenu, "nmenu", ex_menu, - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_nnoremap, "nnoremap", ex_map, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_nnoremenu, "nnoremenu", ex_menu, - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_noremap, "noremap", ex_map, - BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_noautocmd, "noautocmd", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_nohlsearch, "nohlsearch", ex_nohlsearch, - TRLBAR|SBOXOK|CMDWIN), - EX(CMD_noreabbrev, "noreabbrev", ex_abbreviate, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_noremenu, "noremenu", ex_menu, - RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_noswapfile, "noswapfile", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_normal, "normal", ex_normal, - RANGE|BANG|EXTRA|NEEDARG|NOTRLCOM|USECTRLV|SBOXOK|CMDWIN), - EX(CMD_number, "number", ex_print, - RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN), - EX(CMD_nunmap, "nunmap", ex_unmap, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_nunmenu, "nunmenu", ex_menu, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_open, "open", ex_open, - RANGE|BANG|EXTRA), - EX(CMD_oldfiles, "oldfiles", ex_oldfiles, - BANG|TRLBAR|SBOXOK|CMDWIN), - EX(CMD_omap, "omap", ex_map, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_omapclear, "omapclear", ex_mapclear, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_omenu, "omenu", ex_menu, - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_only, "only", ex_only, - BANG|TRLBAR), - EX(CMD_onoremap, "onoremap", ex_map, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_onoremenu, "onoremenu", ex_menu, - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_options, "options", ex_options, - TRLBAR), - EX(CMD_ounmap, "ounmap", ex_unmap, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_ounmenu, "ounmenu", ex_menu, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_ownsyntax, "ownsyntax", ex_ownsyntax, - EXTRA|NOTRLCOM|SBOXOK|CMDWIN), - EX(CMD_print, "print", ex_print, - RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|SBOXOK), - EX(CMD_pclose, "pclose", ex_pclose, - BANG|TRLBAR), - EX(CMD_pedit, "pedit", ex_pedit, - BANG|FILE1|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_pop, "pop", ex_tag, - RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR), - EX(CMD_popup, "popup", ex_popup, - NEEDARG|EXTRA|BANG|TRLBAR|NOTRLCOM|CMDWIN), - EX(CMD_ppop, "ppop", ex_ptag, - RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR), - EX(CMD_preserve, "preserve", ex_preserve, - TRLBAR), - EX(CMD_previous, "previous", ex_previous, - EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_promptfind, "promptfind", gui_mch_find_dialog, - EXTRA|NOTRLCOM|CMDWIN), - EX(CMD_promptrepl, "promptrepl", gui_mch_replace_dialog, - EXTRA|NOTRLCOM|CMDWIN), - EX(CMD_profile, "profile", ex_profile, - BANG|EXTRA|TRLBAR|CMDWIN), - EX(CMD_profdel, "profdel", ex_breakdel, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_psearch, "psearch", ex_psearch, - BANG|RANGE|WHOLEFOLD|DFLALL|EXTRA), - EX(CMD_ptag, "ptag", ex_ptag, - RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR), - EX(CMD_ptNext, "ptNext", ex_ptag, - RANGE|NOTADR|BANG|TRLBAR|ZEROR), - EX(CMD_ptfirst, "ptfirst", ex_ptag, - RANGE|NOTADR|BANG|TRLBAR|ZEROR), - EX(CMD_ptjump, "ptjump", ex_ptag, - BANG|TRLBAR|WORD1), - EX(CMD_ptlast, "ptlast", ex_ptag, - BANG|TRLBAR), - EX(CMD_ptnext, "ptnext", ex_ptag, - RANGE|NOTADR|BANG|TRLBAR|ZEROR), - EX(CMD_ptprevious, "ptprevious", ex_ptag, - RANGE|NOTADR|BANG|TRLBAR|ZEROR), - EX(CMD_ptrewind, "ptrewind", ex_ptag, - RANGE|NOTADR|BANG|TRLBAR|ZEROR), - EX(CMD_ptselect, "ptselect", ex_ptag, - BANG|TRLBAR|WORD1), - EX(CMD_put, "put", ex_put, - RANGE|WHOLEFOLD|BANG|REGSTR|TRLBAR|ZEROR|CMDWIN|MODIFY), - EX(CMD_pwd, "pwd", ex_pwd, - TRLBAR|CMDWIN), - EX(CMD_python, "python", ex_python, - RANGE|EXTRA|NEEDARG|CMDWIN), - EX(CMD_pydo, "pydo", ex_pydo, - RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN), - EX(CMD_pyfile, "pyfile", ex_pyfile, - RANGE|FILE1|NEEDARG|CMDWIN), - EX(CMD_quit, "quit", ex_quit, - BANG|TRLBAR|CMDWIN), - EX(CMD_quitall, "quitall", ex_quit_all, - BANG|TRLBAR), - EX(CMD_qall, "qall", ex_quit_all, - BANG|TRLBAR|CMDWIN), - EX(CMD_read, "read", ex_read, - BANG|RANGE|WHOLEFOLD|FILE1|ARGOPT|TRLBAR|ZEROR|CMDWIN|MODIFY), - EX(CMD_recover, "recover", ex_recover, - BANG|FILE1|TRLBAR), - EX(CMD_redo, "redo", ex_redo, - TRLBAR|CMDWIN), - EX(CMD_redir, "redir", ex_redir, - BANG|FILES|TRLBAR|CMDWIN), - EX(CMD_redraw, "redraw", ex_redraw, - BANG|TRLBAR|CMDWIN), - EX(CMD_redrawstatus, "redrawstatus", ex_redrawstatus, - BANG|TRLBAR|CMDWIN), - EX(CMD_registers, "registers", ex_display, - EXTRA|NOTRLCOM|TRLBAR|CMDWIN), - EX(CMD_resize, "resize", ex_resize, - RANGE|NOTADR|TRLBAR|WORD1), - EX(CMD_retab, "retab", ex_retab, - TRLBAR|RANGE|WHOLEFOLD|DFLALL|BANG|WORD1|CMDWIN|MODIFY), - EX(CMD_return, "return", ex_return, - EXTRA|NOTRLCOM|SBOXOK|CMDWIN), - EX(CMD_rewind, "rewind", ex_rewind, - EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_right, "right", ex_align, - TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY), - EX(CMD_rightbelow, "rightbelow", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_runtime, "runtime", ex_runtime, - BANG|NEEDARG|FILES|TRLBAR|SBOXOK|CMDWIN), - EX(CMD_rundo, "rundo", ex_rundo, - NEEDARG|FILE1), - EX(CMD_rviminfo, "rviminfo", ex_viminfo, - BANG|FILE1|TRLBAR|CMDWIN), - EX(CMD_substitute, "substitute", do_sub, - RANGE|WHOLEFOLD|EXTRA|CMDWIN), - EX(CMD_sNext, "sNext", ex_previous, - EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_sargument, "sargument", ex_argument, - BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_sall, "sall", ex_all, - BANG|RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_sandbox, "sandbox", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_saveas, "saveas", ex_write, - BANG|DFLALL|FILE1|ARGOPT|CMDWIN|TRLBAR), - EX(CMD_sbuffer, "sbuffer", ex_buffer, - BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR), - EX(CMD_sbNext, "sbNext", ex_bprevious, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_sball, "sball", ex_buffer_all, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_sbfirst, "sbfirst", ex_brewind, - TRLBAR), - EX(CMD_sblast, "sblast", ex_blast, - TRLBAR), - EX(CMD_sbmodified, "sbmodified", ex_bmodified, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_sbnext, "sbnext", ex_bnext, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_sbprevious, "sbprevious", ex_bprevious, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_sbrewind, "sbrewind", ex_brewind, - TRLBAR), - EX(CMD_scriptnames, "scriptnames", ex_scriptnames, - TRLBAR|CMDWIN), - EX(CMD_scriptencoding, "scriptencoding", ex_scriptencoding, - WORD1|TRLBAR|CMDWIN), - EX(CMD_scscope, "scscope", do_scscope, - EXTRA|NOTRLCOM), - EX(CMD_set, "set", ex_set, - TRLBAR|EXTRA|CMDWIN|SBOXOK), - EX(CMD_setfiletype, "setfiletype", ex_setfiletype, - TRLBAR|EXTRA|NEEDARG|CMDWIN), - EX(CMD_setglobal, "setglobal", ex_set, - TRLBAR|EXTRA|CMDWIN|SBOXOK), - EX(CMD_setlocal, "setlocal", ex_set, - TRLBAR|EXTRA|CMDWIN|SBOXOK), - EX(CMD_sfind, "sfind", ex_splitview, - BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_sfirst, "sfirst", ex_rewind, - EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_simalt, "simalt", ex_simalt, - NEEDARG|WORD1|TRLBAR|CMDWIN), - EX(CMD_sign, "sign", ex_sign, - NEEDARG|RANGE|NOTADR|EXTRA|CMDWIN), - EX(CMD_silent, "silent", ex_wrongmodifier, - NEEDARG|EXTRA|BANG|NOTRLCOM|SBOXOK|CMDWIN), - EX(CMD_sleep, "sleep", ex_sleep, - RANGE|NOTADR|COUNT|EXTRA|TRLBAR|CMDWIN), - EX(CMD_slast, "slast", ex_last, - EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_smagic, "smagic", ex_submagic, - RANGE|WHOLEFOLD|EXTRA|CMDWIN), - EX(CMD_smap, "smap", ex_map, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_smapclear, "smapclear", ex_mapclear, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_smenu, "smenu", ex_menu, - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_snext, "snext", ex_next, - RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_snomagic, "snomagic", ex_submagic, - RANGE|WHOLEFOLD|EXTRA|CMDWIN), - EX(CMD_snoremap, "snoremap", ex_map, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_snoremenu, "snoremenu", ex_menu, - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_source, "source", ex_source, - BANG|FILE1|TRLBAR|SBOXOK|CMDWIN), - EX(CMD_sort, "sort", ex_sort, - RANGE|DFLALL|WHOLEFOLD|BANG|EXTRA|NOTRLCOM|MODIFY), - EX(CMD_split, "split", ex_splitview, - BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_spellgood, "spellgood", ex_spell, - BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR), - EX(CMD_spelldump, "spelldump", ex_spelldump, - BANG|TRLBAR), - EX(CMD_spellinfo, "spellinfo", ex_spellinfo, - TRLBAR), - EX(CMD_spellrepall, "spellrepall", ex_spellrepall, - TRLBAR), - EX(CMD_spellundo, "spellundo", ex_spell, - BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR), - EX(CMD_spellwrong, "spellwrong", ex_spell, - BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR), - EX(CMD_sprevious, "sprevious", ex_previous, - EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_srewind, "srewind", ex_rewind, - EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_stop, "stop", ex_stop, - TRLBAR|BANG|CMDWIN), - EX(CMD_stag, "stag", ex_stag, - RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR), - EX(CMD_startinsert, "startinsert", ex_startinsert, - BANG|TRLBAR|CMDWIN), - EX(CMD_startgreplace, "startgreplace", ex_startinsert, - BANG|TRLBAR|CMDWIN), - EX(CMD_startreplace, "startreplace", ex_startinsert, - BANG|TRLBAR|CMDWIN), - EX(CMD_stopinsert, "stopinsert", ex_stopinsert, - BANG|TRLBAR|CMDWIN), - EX(CMD_stjump, "stjump", ex_stag, - BANG|TRLBAR|WORD1), - EX(CMD_stselect, "stselect", ex_stag, - BANG|TRLBAR|WORD1), - EX(CMD_sunhide, "sunhide", ex_buffer_all, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_sunmap, "sunmap", ex_unmap, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_sunmenu, "sunmenu", ex_menu, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_suspend, "suspend", ex_stop, - TRLBAR|BANG|CMDWIN), - EX(CMD_sview, "sview", ex_splitview, - BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_swapname, "swapname", ex_swapname, - TRLBAR|CMDWIN), - EX(CMD_syntax, "syntax", ex_syntax, - EXTRA|NOTRLCOM|CMDWIN), - EX(CMD_syntime, "syntime", ex_syntime, - NEEDARG|WORD1|TRLBAR|CMDWIN), - EX(CMD_syncbind, "syncbind", ex_syncbind, - TRLBAR), - EX(CMD_t, "t", ex_copymove, - RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY), - EX(CMD_tNext, "tNext", ex_tag, - RANGE|NOTADR|BANG|TRLBAR|ZEROR), - EX(CMD_tag, "tag", ex_tag, - RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR), - EX(CMD_tags, "tags", do_tags, - TRLBAR|CMDWIN), - EX(CMD_tab, "tab", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_tabclose, "tabclose", ex_tabclose, - RANGE|NOTADR|COUNT|BANG|TRLBAR|CMDWIN), - EX(CMD_tabdo, "tabdo", ex_listdo, - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_tabedit, "tabedit", ex_splitview, - BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_tabfind, "tabfind", ex_splitview, - BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|NEEDARG|TRLBAR), - EX(CMD_tabfirst, "tabfirst", ex_tabnext, - TRLBAR), - EX(CMD_tabmove, "tabmove", ex_tabmove, - RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR), - EX(CMD_tablast, "tablast", ex_tabnext, - TRLBAR), - EX(CMD_tabnext, "tabnext", ex_tabnext, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_tabnew, "tabnew", ex_splitview, - BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_tabonly, "tabonly", ex_tabonly, - BANG|TRLBAR|CMDWIN), - EX(CMD_tabprevious, "tabprevious", ex_tabnext, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_tabNext, "tabNext", ex_tabnext, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_tabrewind, "tabrewind", ex_tabnext, - TRLBAR), - EX(CMD_tabs, "tabs", ex_tabs, - TRLBAR|CMDWIN), - EX(CMD_tearoff, "tearoff", ex_tearoff, - NEEDARG|EXTRA|TRLBAR|NOTRLCOM|CMDWIN), - EX(CMD_tfirst, "tfirst", ex_tag, - RANGE|NOTADR|BANG|TRLBAR|ZEROR), - EX(CMD_throw, "throw", ex_throw, - EXTRA|NEEDARG|SBOXOK|CMDWIN), - EX(CMD_tjump, "tjump", ex_tag, - BANG|TRLBAR|WORD1), - EX(CMD_tlast, "tlast", ex_tag, - BANG|TRLBAR), - EX(CMD_tmenu, "tmenu", ex_menu, - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_tnext, "tnext", ex_tag, - RANGE|NOTADR|BANG|TRLBAR|ZEROR), - EX(CMD_topleft, "topleft", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_tprevious, "tprevious", ex_tag, - RANGE|NOTADR|BANG|TRLBAR|ZEROR), - EX(CMD_trewind, "trewind", ex_tag, - RANGE|NOTADR|BANG|TRLBAR|ZEROR), - EX(CMD_try, "try", ex_try, - TRLBAR|SBOXOK|CMDWIN), - EX(CMD_tselect, "tselect", ex_tag, - BANG|TRLBAR|WORD1), - EX(CMD_tunmenu, "tunmenu", ex_menu, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_undo, "undo", ex_undo, - RANGE|NOTADR|COUNT|ZEROR|TRLBAR|CMDWIN), - EX(CMD_undojoin, "undojoin", ex_undojoin, - TRLBAR|CMDWIN), - EX(CMD_undolist, "undolist", ex_undolist, - TRLBAR|CMDWIN), - EX(CMD_unabbreviate, "unabbreviate", ex_abbreviate, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_unhide, "unhide", ex_buffer_all, - RANGE|NOTADR|COUNT|TRLBAR), - EX(CMD_unlet, "unlet", ex_unlet, - BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN), - EX(CMD_unlockvar, "unlockvar", ex_lockvar, - BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN), - EX(CMD_unmap, "unmap", ex_unmap, - BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_unmenu, "unmenu", ex_menu, - BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_unsilent, "unsilent", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN), - EX(CMD_update, "update", ex_update, - RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR), - EX(CMD_vglobal, "vglobal", ex_global, - RANGE|WHOLEFOLD|EXTRA|DFLALL|CMDWIN), - EX(CMD_version, "version", ex_version, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_verbose, "verbose", ex_wrongmodifier, - NEEDARG|RANGE|NOTADR|EXTRA|NOTRLCOM|SBOXOK|CMDWIN), - EX(CMD_vertical, "vertical", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_visual, "visual", ex_edit, - BANG|FILE1|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_view, "view", ex_edit, - BANG|FILE1|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_vimgrep, "vimgrep", ex_vimgrep, - RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), - EX(CMD_vimgrepadd, "vimgrepadd", ex_vimgrep, - RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), - EX(CMD_viusage, "viusage", ex_viusage, - TRLBAR), - EX(CMD_vmap, "vmap", ex_map, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_vmapclear, "vmapclear", ex_mapclear, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_vmenu, "vmenu", ex_menu, - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_vnoremap, "vnoremap", ex_map, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_vnew, "vnew", ex_splitview, - BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_vnoremenu, "vnoremenu", ex_menu, - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_vsplit, "vsplit", ex_splitview, - BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_vunmap, "vunmap", ex_unmap, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_vunmenu, "vunmenu", ex_menu, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_write, "write", ex_write, - RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN), - EX(CMD_wNext, "wNext", ex_wnext, - RANGE|WHOLEFOLD|NOTADR|BANG|FILE1|ARGOPT|TRLBAR), - EX(CMD_wall, "wall", do_wqall, - BANG|TRLBAR|CMDWIN), - EX(CMD_while, "while", ex_while, - EXTRA|NOTRLCOM|SBOXOK|CMDWIN), - EX(CMD_winsize, "winsize", ex_winsize, - EXTRA|NEEDARG|TRLBAR), - EX(CMD_wincmd, "wincmd", ex_wincmd, - NEEDARG|WORD1|RANGE|NOTADR), - EX(CMD_windo, "windo", ex_listdo, - BANG|NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_winpos, "winpos", ex_winpos, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_wnext, "wnext", ex_wnext, - RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR), - EX(CMD_wprevious, "wprevious", ex_wnext, - RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR), - EX(CMD_wq, "wq", ex_exit, - RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR), - EX(CMD_wqall, "wqall", do_wqall, - BANG|FILE1|ARGOPT|DFLALL|TRLBAR), - EX(CMD_wsverb, "wsverb", ex_wsverb, - EXTRA|NOTADR|NEEDARG), - EX(CMD_wundo, "wundo", ex_wundo, - BANG|NEEDARG|FILE1), - EX(CMD_wviminfo, "wviminfo", ex_viminfo, - BANG|FILE1|TRLBAR|CMDWIN), - EX(CMD_xit, "xit", ex_exit, - RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN), - EX(CMD_xall, "xall", do_wqall, - BANG|TRLBAR), - EX(CMD_xmap, "xmap", ex_map, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_xmapclear, "xmapclear", ex_mapclear, - EXTRA|TRLBAR|CMDWIN), - EX(CMD_xmenu, "xmenu", ex_menu, - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_xnoremap, "xnoremap", ex_map, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_xnoremenu, "xnoremenu", ex_menu, - RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_xunmap, "xunmap", ex_unmap, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_xunmenu, "xunmenu", ex_menu, - EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), - EX(CMD_yank, "yank", ex_operators, - RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN), - EX(CMD_z, "z", ex_z, - RANGE|WHOLEFOLD|EXTRA|EXFLAGS|TRLBAR|CMDWIN), +typedef char_u *(*LineGetter)(int, void *, int); - /* commands that don't start with a lowercase letter */ - EX(CMD_bang, "!", ex_bang, - RANGE|WHOLEFOLD|BANG|FILES|CMDWIN), - EX(CMD_pound, "#", ex_print, - RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN), - EX(CMD_and, "&", do_sub, - RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY), - EX(CMD_star, "*", ex_at, - RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN), - EX(CMD_lshift, "<", ex_operators, - RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY), - EX(CMD_equal, "=", ex_equal, - RANGE|TRLBAR|DFLALL|EXFLAGS|CMDWIN), - EX(CMD_rshift, ">", ex_operators, - RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY), - EX(CMD_at, "@", ex_at, - RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN), - EX(CMD_Next, "Next", ex_previous, - EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR), - EX(CMD_Print, "Print", ex_print, - RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN), - EX(CMD_tilde, "~", do_sub, - RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY), - -#ifndef DO_DECLARE_EXCMD - CMD_SIZE, /* MUST be after all real commands! */ - CMD_USER = -1, /* User-defined command */ - CMD_USER_BUF = -2 /* User-defined command local to buffer */ -#endif -}; +/// Structure for command definition. +typedef struct cmdname { + char_u *cmd_name; ///< Name of the command. + ex_func_T cmd_func; ///< Function with implementation of this command. + long_u cmd_argt; ///< Relevant flags from the declared above. +} CommandDefinition; #define USER_CMDIDX(idx) ((int)(idx) < 0) -#ifndef DO_DECLARE_EXCMD -typedef enum CMD_index cmdidx_T; - -/* - * Arguments used for Ex commands. - */ +/// Arguments used for Ex commands. struct exarg { - char_u *arg; /* argument of the command */ - char_u *nextcmd; /* next command (NULL if none) */ - char_u *cmd; /* the name of the command (except for :make) */ - char_u **cmdlinep; /* pointer to pointer of allocated cmdline */ - cmdidx_T cmdidx; /* the index for the command */ - long argt; /* flags for the command */ - int skip; /* don't execute the command, only parse it */ - int forceit; /* TRUE if ! present */ - int addr_count; /* the number of addresses given */ - linenr_T line1; /* the first line number */ - linenr_T line2; /* the second line number or count */ - int flags; /* extra flags after count: EXFLAG_ */ - char_u *do_ecmd_cmd; /* +command arg to be used in edited file */ - linenr_T do_ecmd_lnum; /* the line number in an edited file */ - int append; /* TRUE with ":w >>file" command */ - int usefilter; /* TRUE with ":w !command" and ":r!command" */ - int amount; /* number of '>' or '<' for shift command */ - int regname; /* register name (NUL if none) */ - int force_bin; /* 0, FORCE_BIN or FORCE_NOBIN */ - int read_edit; /* ++edit argument */ - int force_ff; /* ++ff= argument (index in cmd[]) */ - int force_enc; /* ++enc= argument (index in cmd[]) */ - int bad_char; /* BAD_KEEP, BAD_DROP or replacement byte */ - int useridx; /* user command index */ - char_u *errmsg; /* returned error message */ - char_u *(*getline)(int, void *, int); - void *cookie; /* argument for getline() */ - struct condstack *cstack; /* condition stack for ":if" etc. */ + char_u *arg; ///< argument of the command + char_u *nextcmd; ///< next command (NULL if none) + char_u *cmd; ///< the name of the command (except for :make) + char_u **cmdlinep; ///< pointer to pointer of allocated cmdline + cmdidx_T cmdidx; ///< the index for the command + long argt; ///< flags for the command + int skip; ///< don't execute the command, only parse it + int forceit; ///< TRUE if ! present + int addr_count; ///< the number of addresses given + linenr_T line1; ///< the first line number + linenr_T line2; ///< the second line number or count + int flags; ///< extra flags after count: EXFLAG_ + char_u *do_ecmd_cmd; ///< +command arg to be used in edited file + linenr_T do_ecmd_lnum; ///< the line number in an edited file + int append; ///< TRUE with ":w >>file" command + int usefilter; ///< TRUE with ":w !command" and ":r!command" + int amount; ///< number of '>' or '<' for shift command + int regname; ///< register name (NUL if none) + int force_bin; ///< 0, FORCE_BIN or FORCE_NOBIN + int read_edit; ///< ++edit argument + int force_ff; ///< ++ff= argument (index in cmd[]) + int force_enc; ///< ++enc= argument (index in cmd[]) + int bad_char; ///< BAD_KEEP, BAD_DROP or replacement byte + int useridx; ///< user command index + char_u *errmsg; ///< returned error message + LineGetter getline; ///< Function used to get the next line + void *cookie; ///< argument for getline() + struct condstack *cstack; ///< condition stack for ":if" etc. }; #define FORCE_BIN 1 /* ":edit ++bin file" */ @@ -1209,5 +160,4 @@ typedef struct { char_u *save_ei; /* saved value of 'eventignore' */ } cmdmod_T; -#endif -#endif +#endif // NVIM_EX_CMDS_DEFS_H diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index 446d51be3f..ab7add1c5b 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -66,6 +66,7 @@ #include "nvim/version.h" #include "nvim/window.h" #include "nvim/os/os.h" +#include "nvim/ex_cmds_defs.h" static int quitmore = 0; static int ex_pressedreturn = FALSE; @@ -156,42 +157,9 @@ static int did_lcd; /* whether ":lcd" was produced for a session */ /* * Declare cmdnames[]. */ -#define DO_DECLARE_EXCMD -#include "nvim/ex_cmds_defs.h" - -/* - * Table used to quickly search for a command, based on its first character. - */ -static cmdidx_T cmdidxs[27] = -{ - CMD_append, - CMD_buffer, - CMD_change, - CMD_delete, - CMD_edit, - CMD_file, - CMD_global, - CMD_help, - CMD_insert, - CMD_join, - CMD_k, - CMD_list, - CMD_move, - CMD_next, - CMD_open, - CMD_print, - CMD_quit, - CMD_read, - CMD_substitute, - CMD_t, - CMD_undo, - CMD_vglobal, - CMD_write, - CMD_xit, - CMD_yank, - CMD_z, - CMD_bang -}; +#ifdef INCLUDE_GENERATED_DECLARATIONS +# include "ex_cmds_defs.generated.h" +#endif static char_u dollar_command[2] = {'$', 0}; diff --git a/src/nvim/ex_docmd.h b/src/nvim/ex_docmd.h index cd3ef2738d..a5a4edbbbf 100644 --- a/src/nvim/ex_docmd.h +++ b/src/nvim/ex_docmd.h @@ -1,6 +1,8 @@ #ifndef NVIM_EX_DOCMD_H #define NVIM_EX_DOCMD_H +#include "nvim/ex_cmds_defs.h" + /* flags for do_cmdline() */ #define DOCMD_VERBOSE 0x01 /* included command in error message */ #define DOCMD_NOWAIT 0x02 /* don't call wait_return() and friends */ @@ -17,8 +19,6 @@ #define EXMODE_NORMAL 1 #define EXMODE_VIM 2 -typedef char_u *(*LineGetter)(int, void *, int); - #ifdef INCLUDE_GENERATED_DECLARATIONS # include "ex_docmd.h.generated.h" #endif |