summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2014-11-27 16:22:48 +0100
committerBram Moolenaar <Bram@vim.org>2014-11-27 16:22:48 +0100
commitb96a7f325c9047d6a65424d40e493d3e0eff26b5 (patch)
treee1ede3b804b7e235b967d5a607eaa2d4a916fc63
parentbaf0344ed7031369a0f355beb062eb4c34e35261 (diff)
downloadvim-git-b96a7f325c9047d6a65424d40e493d3e0eff26b5.tar.gz
updated for version 7.4.530v7.4.530
Problem: Many commands take a count or range that is not using line numbers. Solution: For each command specify what kind of count it uses. For windows, buffers and arguments have "$" and "." have a relevant meaning. (Marcin Szamotulski)
-rw-r--r--runtime/doc/tabpage.txt49
-rw-r--r--runtime/doc/windows.txt87
-rw-r--r--src/Makefile5
-rw-r--r--src/ex_cmds.h1583
-rw-r--r--src/ex_docmd.c604
-rw-r--r--src/testdir/Make_amiga.mak4
-rw-r--r--src/testdir/Make_dos.mak2
-rw-r--r--src/testdir/Make_ming.mak2
-rw-r--r--src/testdir/Make_os2.mak2
-rw-r--r--src/testdir/Make_vms.mms10
-rw-r--r--src/testdir/Makefile2
-rw-r--r--src/version.c2
-rw-r--r--src/window.c18
13 files changed, 1665 insertions, 705 deletions
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index 3c7ad9fe2..b795dbe55 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -61,16 +61,25 @@ In the GUI tab pages line you can use the right mouse button to open menu.
:[count]tabe[dit] *:tabe* *:tabedit* *:tabnew*
:[count]tabnew
Open a new tab page with an empty window, after the current
- tab page. For [count] see |:tab| below.
+ tab page. If [count] is given the new tab page appears after
+ the tab page [count] otherwise the new tab page will appear
+ after the current one. >
+ :tabnew " opens tabpage after the current one
+ :.tabnew " as above
+ :+tabnew " opens tabpage after the next tab page
+ " note: it is one further than :tabnew
+ :-tabnew " opens tabpage before the current one
+ :0tabnew " opens tabpage before the first one
+ :$tabnew " opens tabpage after the last one
:[count]tabe[dit] [++opt] [+cmd] {file}
:[count]tabnew [++opt] [+cmd] {file}
Open a new tab page and edit {file}, like with |:edit|.
- For [count] see |:tab| below.
+ For [count] see |:tabnew| above.
:[count]tabf[ind] [++opt] [+cmd] {file} *:tabf* *:tabfind*
Open a new tab page and edit {file} in 'path', like with
- |:find|. For [count] see |:tab| below.
+ |:find|. For [count] see |:tabnew| above.
{not available when the |+file_in_path| feature was disabled
at compile time}
@@ -110,12 +119,18 @@ something else.
- When 'hidden' is not set, [!] is not used, a buffer has
changes, and there is no other window on this buffer.
Changes to the buffer are not written and won't get lost, so
- this is a "safe" command.
+ this is a "safe" command. >
+ :tabclose " close the current tab page
+:{count}tabc[lose][!]
:tabc[lose][!] {count}
Close tab page {count}. Fails in the same way as `:tabclose`
- above.
-
+ above. >
+ :-tabclose " close the previous tab page
+ :+tabclose " close the next tab page
+ :1tabclose " close the first tab page
+ :$tabclose " close the last tab page
+<
*:tabo* *:tabonly*
:tabo[nly][!] Close all other tab pages.
When the 'hidden' option is set, all buffers in closed windows
@@ -124,7 +139,17 @@ something else.
modified buffers are written. Otherwise, windows that have
buffers that are modified are not removed, unless the [!] is
given, then they become hidden. But modified buffers are
- never abandoned, so changes cannot get lost.
+ never abandoned, so changes cannot get lost. >
+ :tabonly " close all tab pages except the current
+
+:{count}tabo[nly][!]
+ Close all tab pages except the {count}th one. >
+ :.tabonly " one
+ :-tabonly " close all tab pages except the previous
+ " one
+ :+tabonly " close all tab pages except the next one
+ :1tabonly " close all tab pages except the first one
+ :$tabonly " close all tab pages except the last one
SWITCHING TO ANOTHER TAB PAGE:
@@ -176,7 +201,15 @@ REORDERING TAB PAGES:
:[N]tabm[ove]
Move the current tab page to after tab page N. Use zero to
make the current tab page the first one. Without N the tab
- page is made the last one.
+ page is made the last one. >
+ :-tabmove " move the tab page to the left
+ :tabmove " move the tab page to the right
+ :.tabmove " as above
+ :+tabmove " as above
+ :0tabmove " move the tab page to the begining of the tab
+ " list
+ :$tabmove " move the tab page to the end of the tab list
+<
:tabm[ove] +[N]
:tabm[ove] -[N]
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index 0098e3e52..d116c9f6c 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -263,28 +263,56 @@ left of the Vim window.
Closing a window
----------------
+:q[uit]
+:{count}q[uit]
CTRL-W q *CTRL-W_q*
CTRL-W CTRL-Q *CTRL-W_CTRL-Q*
-:q[uit] Quit current window. When quitting the last window (not
- counting a help window), exit Vim.
- When 'hidden' is set, and there is only one window for the
- current buffer, it becomes hidden.
- When 'hidden' is not set, and there is only one window for the
- current buffer, and the buffer was changed, the command fails.
- (Note: CTRL-Q does not work on all terminals)
-
-:q[uit]! Quit current window. If this was the last window for a buffer,
- any changes to that buffer are lost. When quitting the last
- window (not counting help windows), exit Vim. The contents of
- the buffer are lost, even when 'hidden' is set.
+ Without {count}: Quit the current window. If {count} is
+ given quit the {count} window.
+ When quitting the last window (not counting a help window),
+ exit Vim.
+
+ When 'hidden' is set, and there is only one window for the
+ current buffer, it becomes hidden. When 'hidden' is not set,
+ and there is only one window for the current buffer, and the
+ buffer was changed, the command fails.
+
+ (Note: CTRL-Q does not
+ work on all terminals). If [count] is greater than
+ the last window number the last window will be closed: >
+ :1quit " quit the first window
+ :$quit " quit the last window
+ :9quit " quit the last window
+ " if there are less than 9 windows opened
+ :-quit " quit the previews window
+ :+quit " quit the next window
+ :+2quit " will also work as expected
+<
+:q[uit]!
+:{count}q[uit]!
+ Without {count}: Quit the current window. If {count} is
+ given quit the {count} window.
+
+ If this was the last window for a buffer, any changes to that
+ buffer are lost. When quitting the last window (not counting
+ help windows), exit Vim. The contents of the buffer are lost,
+ even when 'hidden' is set.
+
+:clo[se][!]
+:{count}clo[se][!]
CTRL-W c *CTRL-W_c* *:clo* *:close*
-:clo[se][!] Close current window. When the 'hidden' option is set, or
- when the buffer was changed and the [!] is used, the buffer
- becomes hidden (unless there is another window editing it).
+ Without {count}: Close the current window. If {count} is
+ given close the {count} window.
+
+ When the 'hidden' option is set, or when the buffer was
+ changed and the [!] is used, the buffer becomes hidden (unless
+ there is another window editing it).
+
When there is only one window in the current tab page and
there is another tab page, this closes the current tab page.
|tab-page|.
+
This command fails when: *E444*
- There is only one window on the screen.
- When 'hidden' is not set, [!] is not used, the buffer has
@@ -298,14 +326,19 @@ CTRL-W CTRL-C *CTRL-W_CTRL-C*
command.
*:hide*
-:hid[e] Quit current window, unless it is the last window on the
- screen. The buffer becomes hidden (unless there is another
- window editing it or 'bufhidden' is "unload" or "delete").
- If the window is the last one in the current tab page the tab
- page is closed. |tab-page|
- The value of 'hidden' is irrelevant for this command.
- Changes to the buffer are not written and won't get lost, so
- this is a "safe" command.
+:hid[e]
+:{count}hid[e]
+ Quit the current window, unless it is the last window on the
+ screen. For {count} see |:quit| command.
+
+ The buffer becomes hidden (unless there is another window
+ editing it or 'bufhidden' is "unload" or "delete"). If the
+ window is the last one in the current tab page the tab page is
+ closed. |tab-page|
+
+ The value of 'hidden' is irrelevant for this command. Changes
+ to the buffer are not written and won't get lost, so this is a
+ "safe" command.
:hid[e] {cmd} Execute {cmd} with 'hidden' is set. The previous value of
'hidden' is restored after {cmd} has been executed.
@@ -314,12 +347,16 @@ CTRL-W CTRL-C *CTRL-W_CTRL-C*
< This will edit "Makefile", and hide the current buffer if it
has any changes.
+:on[ly][!]
+:{count}on[ly][!]
CTRL-W o *CTRL-W_o* *E445*
CTRL-W CTRL-O *CTRL-W_CTRL-O* *:on* *:only*
-:on[ly][!] Make the current window the only one on the screen. All other
- windows are closed.
+ Make the current window the only one on the screen. All other
+ windows are closed. For {count} see |:quit| command.
+
When the 'hidden' option is set, all buffers in closed windows
become hidden.
+
When 'hidden' is not set, and the 'autowrite' option is set,
modified buffers are written. Otherwise, windows that have
buffers that are modified are not removed, unless the [!] is
diff --git a/src/Makefile b/src/Makefile
index 6bf8c1737..13fe70b1a 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1890,10 +1890,12 @@ unittest unittests: $(UNITTEST_TARGETS)
done
# Run individual test, assuming that Vim was already compiled.
-test1 test2 test3 test4 test5 test6 test7 test8 test9 \
+test1 \
+ test_argument_count \
test_autoformat_join \
test_breakindent \
test_changelist \
+ test_close_count \
test_eval \
test_insertcount \
test_listlbr \
@@ -1904,6 +1906,7 @@ test1 test2 test3 test4 test5 test6 test7 test8 test9 \
test_signs \
test_utf8 \
test_writefile \
+ test2 test3 test4 test5 test6 test7 test8 test9 \
test10 test11 test12 test13 test14 test15 test16 test17 test18 test19 \
test20 test21 test22 test23 test24 test25 test26 test27 test28 test29 \
test30 test31 test32 test33 test34 test35 test36 test37 test38 test39 \
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index 93c77764a..5574ea7bc 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -58,6 +58,14 @@
#define WORD1 (EXTRA | NOSPC) /* one extra word allowed */
#define FILE1 (FILES | NOSPC) /* 1 file allowed, defaults to current file */
+/* values for cmd_addr_type */
+#define ADDR_LINES 0
+#define ADDR_WINDOWS 1
+#define ADDR_ARGUMENTS 2
+#define ADDR_LOADED_BUFFERS 3
+#define ADDR_UNLOADED_BUFFERS 4
+#define ADDR_TABS 5
+
#ifndef DO_DECLARE_EXCMD
typedef struct exarg exarg_T;
#endif
@@ -74,7 +82,7 @@ typedef struct exarg exarg_T;
# undef EX /* just in case */
#endif
#ifdef DO_DECLARE_EXCMD
-# define EX(a, b, c, d) {(char_u *)b, c, (long_u)(d)}
+# define EX(a, b, c, d, e) {(char_u *)b, c, (long_u)(d), e}
typedef void (*ex_func_T) __ARGS((exarg_T *eap));
@@ -83,1064 +91,1588 @@ 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 */
+ int cmd_addr_type; /* flag for address type */
}
# if defined(FEAT_GUI_W16)
_far
# endif
cmdnames[] =
#else
-# define EX(a, b, c, d) a
+# define EX(a, b, c, d, e) a
enum CMD_index
#endif
{
EX(CMD_append, "append", ex_append,
- BANG|RANGE|ZEROR|TRLBAR|CMDWIN|MODIFY),
+ BANG|RANGE|ZEROR|TRLBAR|CMDWIN|MODIFY,
+ ADDR_LINES),
EX(CMD_abbreviate, "abbreviate", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_abclear, "abclear", ex_abclear,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_aboveleft, "aboveleft", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
+ NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_all, "all", ex_all,
- BANG|RANGE|NOTADR|COUNT|TRLBAR),
+ BANG|RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_amenu, "amenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_anoremenu, "anoremenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_args, "args", ex_args,
- BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
+ BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_argadd, "argadd", ex_argadd,
- BANG|NEEDARG|RANGE|NOTADR|ZEROR|FILES|TRLBAR),
+ BANG|NEEDARG|RANGE|NOTADR|ZEROR|FILES|TRLBAR,
+ ADDR_ARGUMENTS),
EX(CMD_argdelete, "argdelete", ex_argdelete,
- BANG|RANGE|NOTADR|FILES|TRLBAR),
+ BANG|RANGE|NOTADR|FILES|TRLBAR,
+ ADDR_ARGUMENTS),
EX(CMD_argdo, "argdo", ex_listdo,
- BANG|NEEDARG|EXTRA|NOTRLCOM),
+ BANG|NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_argedit, "argedit", ex_argedit,
- BANG|NEEDARG|RANGE|NOTADR|FILE1|EDITCMD|ARGOPT|TRLBAR),
+ BANG|NEEDARG|RANGE|NOTADR|FILE1|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_ARGUMENTS),
EX(CMD_argglobal, "argglobal", ex_args,
- BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
+ BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_arglocal, "arglocal", ex_args,
- BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
+ BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_argument, "argument", ex_argument,
- BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR),
+ BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_ARGUMENTS),
EX(CMD_ascii, "ascii", do_ascii,
- TRLBAR|SBOXOK|CMDWIN),
+ TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_autocmd, "autocmd", ex_autocmd,
- BANG|EXTRA|NOTRLCOM|USECTRLV|CMDWIN),
+ BANG|EXTRA|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_augroup, "augroup", ex_autocmd,
- BANG|WORD1|TRLBAR|CMDWIN),
+ BANG|WORD1|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_aunmenu, "aunmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_buffer, "buffer", ex_buffer,
- BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR),
+ BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR,
+ ADDR_UNLOADED_BUFFERS),
EX(CMD_bNext, "bNext", ex_bprevious,
- BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR),
+ BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
+ ADDR_LINES),
EX(CMD_ball, "ball", ex_buffer_all,
- RANGE|NOTADR|COUNT|TRLBAR),
+ RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_badd, "badd", ex_edit,
- NEEDARG|FILE1|EDITCMD|TRLBAR|CMDWIN),
+ NEEDARG|FILE1|EDITCMD|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_bdelete, "bdelete", ex_bunload,
- BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR),
+ BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR,
+ ADDR_LOADED_BUFFERS),
EX(CMD_behave, "behave", ex_behave,
- NEEDARG|WORD1|TRLBAR|CMDWIN),
+ NEEDARG|WORD1|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_belowright, "belowright", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
+ NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_bfirst, "bfirst", ex_brewind,
- BANG|RANGE|NOTADR|EDITCMD|TRLBAR),
+ BANG|RANGE|NOTADR|EDITCMD|TRLBAR,
+ ADDR_LINES),
EX(CMD_blast, "blast", ex_blast,
- BANG|RANGE|NOTADR|EDITCMD|TRLBAR),
+ BANG|RANGE|NOTADR|EDITCMD|TRLBAR,
+ ADDR_LINES),
EX(CMD_bmodified, "bmodified", ex_bmodified,
- BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR),
+ BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
+ ADDR_LINES),
EX(CMD_bnext, "bnext", ex_bnext,
- BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR),
+ BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
+ ADDR_LINES),
EX(CMD_botright, "botright", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
+ NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_bprevious, "bprevious", ex_bprevious,
- BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR),
+ BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
+ ADDR_LINES),
EX(CMD_brewind, "brewind", ex_brewind,
- BANG|RANGE|NOTADR|EDITCMD|TRLBAR),
+ BANG|RANGE|NOTADR|EDITCMD|TRLBAR,
+ ADDR_LINES),
EX(CMD_break, "break", ex_break,
- TRLBAR|SBOXOK|CMDWIN),
+ TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_breakadd, "breakadd", ex_breakadd,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_breakdel, "breakdel", ex_breakdel,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_breaklist, "breaklist", ex_breaklist,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_browse, "browse", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM|CMDWIN),
+ NEEDARG|EXTRA|NOTRLCOM|CMDWIN,
+ ADDR_LINES),
EX(CMD_buffers, "buffers", buflist_list,
- BANG|TRLBAR|CMDWIN),
+ BANG|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_bufdo, "bufdo", ex_listdo,
- BANG|NEEDARG|EXTRA|NOTRLCOM),
+ BANG|NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_bunload, "bunload", ex_bunload,
- BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR),
+ BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR,
+ ADDR_LOADED_BUFFERS),
EX(CMD_bwipeout, "bwipeout", ex_bunload,
- BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR),
+ BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR,
+ ADDR_UNLOADED_BUFFERS),
EX(CMD_change, "change", ex_change,
- BANG|WHOLEFOLD|RANGE|COUNT|TRLBAR|CMDWIN|MODIFY),
+ BANG|WHOLEFOLD|RANGE|COUNT|TRLBAR|CMDWIN|MODIFY,
+ ADDR_LINES),
EX(CMD_cNext, "cNext", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_cNfile, "cNfile", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_cabbrev, "cabbrev", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_cabclear, "cabclear", ex_abclear,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_caddbuffer, "caddbuffer", ex_cbuffer,
- RANGE|NOTADR|WORD1|TRLBAR),
+ RANGE|NOTADR|WORD1|TRLBAR,
+ ADDR_LINES),
EX(CMD_caddexpr, "caddexpr", ex_cexpr,
- NEEDARG|WORD1|NOTRLCOM|TRLBAR),
+ NEEDARG|WORD1|NOTRLCOM|TRLBAR,
+ ADDR_LINES),
EX(CMD_caddfile, "caddfile", ex_cfile,
- TRLBAR|FILE1),
+ TRLBAR|FILE1,
+ ADDR_LINES),
EX(CMD_call, "call", ex_call,
- RANGE|NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ RANGE|NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_catch, "catch", ex_catch,
- EXTRA|SBOXOK|CMDWIN),
+ EXTRA|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_cbuffer, "cbuffer", ex_cbuffer,
- BANG|RANGE|NOTADR|WORD1|TRLBAR),
+ BANG|RANGE|NOTADR|WORD1|TRLBAR,
+ ADDR_LINES),
EX(CMD_cc, "cc", ex_cc,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_cclose, "cclose", ex_cclose,
- RANGE|NOTADR|COUNT|TRLBAR),
+ RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_cd, "cd", ex_cd,
- BANG|FILE1|TRLBAR|CMDWIN),
+ BANG|FILE1|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_center, "center", ex_align,
- TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
+ TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
+ ADDR_LINES),
EX(CMD_cexpr, "cexpr", ex_cexpr,
- NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG),
+ NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_cfile, "cfile", ex_cfile,
- TRLBAR|FILE1|BANG),
+ TRLBAR|FILE1|BANG,
+ ADDR_LINES),
EX(CMD_cfirst, "cfirst", ex_cc,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_cgetfile, "cgetfile", ex_cfile,
- TRLBAR|FILE1),
+ TRLBAR|FILE1,
+ ADDR_LINES),
EX(CMD_cgetbuffer, "cgetbuffer", ex_cbuffer,
- RANGE|NOTADR|WORD1|TRLBAR),
+ RANGE|NOTADR|WORD1|TRLBAR,
+ ADDR_LINES),
EX(CMD_cgetexpr, "cgetexpr", ex_cexpr,
- NEEDARG|WORD1|NOTRLCOM|TRLBAR),
+ NEEDARG|WORD1|NOTRLCOM|TRLBAR,
+ ADDR_LINES),
EX(CMD_chdir, "chdir", ex_cd,
- BANG|FILE1|TRLBAR|CMDWIN),
+ BANG|FILE1|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_changes, "changes", ex_changes,
- TRLBAR|CMDWIN),
+ TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_checkpath, "checkpath", ex_checkpath,
- TRLBAR|BANG|CMDWIN),
+ TRLBAR|BANG|CMDWIN,
+ ADDR_LINES),
EX(CMD_checktime, "checktime", ex_checktime,
- RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR),
+ RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR,
+ ADDR_LINES),
EX(CMD_clist, "clist", qf_list,
- BANG|EXTRA|TRLBAR|CMDWIN),
+ BANG|EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_clast, "clast", ex_cc,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_close, "close", ex_close,
- BANG|TRLBAR|CMDWIN),
+ BANG|RANGE|NOTADR|COUNT|TRLBAR|CMDWIN,
+ ADDR_WINDOWS),
EX(CMD_cmap, "cmap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_cmapclear, "cmapclear", ex_mapclear,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_cmenu, "cmenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_cnext, "cnext", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_cnewer, "cnewer", qf_age,
- RANGE|NOTADR|COUNT|TRLBAR),
+ RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_cnfile, "cnfile", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_cnoremap, "cnoremap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_cnoreabbrev, "cnoreabbrev", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_cnoremenu, "cnoremenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_copy, "copy", ex_copymove,
- RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY),
+ RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
+ ADDR_LINES),
EX(CMD_colder, "colder", qf_age,
- RANGE|NOTADR|COUNT|TRLBAR),
+ RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_colorscheme, "colorscheme", ex_colorscheme,
- WORD1|TRLBAR|CMDWIN),
+ WORD1|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_command, "command", ex_command,
- EXTRA|BANG|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|BANG|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_comclear, "comclear", ex_comclear,
- TRLBAR|CMDWIN),
+ TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_compiler, "compiler", ex_compiler,
- BANG|TRLBAR|WORD1|CMDWIN),
+ BANG|TRLBAR|WORD1|CMDWIN,
+ ADDR_LINES),
EX(CMD_continue, "continue", ex_continue,
- TRLBAR|SBOXOK|CMDWIN),
+ TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_confirm, "confirm", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM|CMDWIN),
+ NEEDARG|EXTRA|NOTRLCOM|CMDWIN,
+ ADDR_LINES),
EX(CMD_copen, "copen", ex_copen,
- RANGE|NOTADR|COUNT|TRLBAR),
+ RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_cprevious, "cprevious", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_cpfile, "cpfile", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_cquit, "cquit", ex_cquit,
- TRLBAR|BANG),
+ TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_crewind, "crewind", ex_cc,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_cscope, "cscope", do_cscope,
- EXTRA|NOTRLCOM|XFILE),
+ EXTRA|NOTRLCOM|XFILE,
+ ADDR_LINES),
EX(CMD_cstag, "cstag", do_cstag,
- BANG|TRLBAR|WORD1),
+ BANG|TRLBAR|WORD1,
+ ADDR_LINES),
EX(CMD_cunmap, "cunmap", ex_unmap,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_cunabbrev, "cunabbrev", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_cunmenu, "cunmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_cwindow, "cwindow", ex_cwindow,
- RANGE|NOTADR|COUNT|TRLBAR),
+ RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_delete, "delete", ex_operators,
- RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN|MODIFY),
+ RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN|MODIFY,
+ ADDR_LINES),
EX(CMD_delmarks, "delmarks", ex_delmarks,
- BANG|EXTRA|TRLBAR|CMDWIN),
+ BANG|EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_debug, "debug", ex_debug,
- NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_debuggreedy, "debuggreedy", ex_debuggreedy,
- RANGE|NOTADR|ZEROR|TRLBAR|CMDWIN),
+ RANGE|NOTADR|ZEROR|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_delcommand, "delcommand", ex_delcommand,
- NEEDARG|WORD1|TRLBAR|CMDWIN),
+ NEEDARG|WORD1|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_delfunction, "delfunction", ex_delfunction,
- NEEDARG|WORD1|CMDWIN),
+ NEEDARG|WORD1|CMDWIN,
+ ADDR_LINES),
EX(CMD_display, "display", ex_display,
- EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN),
+ EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_diffupdate, "diffupdate", ex_diffupdate,
- BANG|TRLBAR),
+ BANG|TRLBAR,
+ ADDR_LINES),
EX(CMD_diffget, "diffget", ex_diffgetput,
- RANGE|EXTRA|TRLBAR|MODIFY),
+ RANGE|EXTRA|TRLBAR|MODIFY,
+ ADDR_LINES),
EX(CMD_diffoff, "diffoff", ex_diffoff,
- BANG|TRLBAR),
+ BANG|TRLBAR,
+ ADDR_LINES),
EX(CMD_diffpatch, "diffpatch", ex_diffpatch,
- EXTRA|FILE1|TRLBAR|MODIFY),
+ EXTRA|FILE1|TRLBAR|MODIFY,
+ ADDR_LINES),
EX(CMD_diffput, "diffput", ex_diffgetput,
- RANGE|EXTRA|TRLBAR),
+ RANGE|EXTRA|TRLBAR,
+ ADDR_LINES),
EX(CMD_diffsplit, "diffsplit", ex_diffsplit,
- EXTRA|FILE1|TRLBAR),
+ EXTRA|FILE1|TRLBAR,
+ ADDR_LINES),
EX(CMD_diffthis, "diffthis", ex_diffthis,
- TRLBAR),
+ TRLBAR,
+ ADDR_LINES),
EX(CMD_digraphs, "digraphs", ex_digraphs,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_djump, "djump", ex_findpat,
- BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA),
+ BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA,
+ ADDR_LINES),
EX(CMD_dlist, "dlist", ex_findpat,
- BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN),
+ BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN,
+ ADDR_LINES),
EX(CMD_doautocmd, "doautocmd", ex_doautocmd,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_doautoall, "doautoall", ex_doautoall,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_drop, "drop", ex_drop,
- FILES|EDITCMD|NEEDARG|ARGOPT|TRLBAR),
+ FILES|EDITCMD|NEEDARG|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_dsearch, "dsearch", ex_findpat,
- BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN),
+ BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN,
+ ADDR_LINES),
EX(CMD_dsplit, "dsplit", ex_findpat,
- BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA),
+ BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA,
+ ADDR_LINES),
EX(CMD_edit, "edit", ex_edit,
- BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
+ BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_earlier, "earlier", ex_later,
- TRLBAR|EXTRA|NOSPC|CMDWIN),
+ TRLBAR|EXTRA|NOSPC|CMDWIN,
+ ADDR_LINES),
EX(CMD_echo, "echo", ex_echo,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_echoerr, "echoerr", ex_execute,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_echohl, "echohl", ex_echohl,
- EXTRA|TRLBAR|SBOXOK|CMDWIN),
+ EXTRA|TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_echomsg, "echomsg", ex_execute,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_echon, "echon", ex_echo,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_else, "else", ex_else,
- TRLBAR|SBOXOK|CMDWIN),
+ TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_elseif, "elseif", ex_else,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_emenu, "emenu", ex_emenu,
- NEEDARG|EXTRA|TRLBAR|NOTRLCOM|RANGE|NOTADR|CMDWIN),
+ NEEDARG|EXTRA|TRLBAR|NOTRLCOM|RANGE|NOTADR|CMDWIN,
+ ADDR_LINES),
EX(CMD_endif, "endif", ex_endif,
- TRLBAR|SBOXOK|CMDWIN),
+ TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_endfunction, "endfunction", ex_endfunction,
- TRLBAR|CMDWIN),
+ TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_endfor, "endfor", ex_endwhile,
- TRLBAR|SBOXOK|CMDWIN),
+ TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_endtry, "endtry", ex_endtry,
- TRLBAR|SBOXOK|CMDWIN),
+ TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_endwhile, "endwhile", ex_endwhile,
- TRLBAR|SBOXOK|CMDWIN),
+ TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_enew, "enew", ex_edit,
- BANG|TRLBAR),
+ BANG|TRLBAR,
+ ADDR_LINES),
EX(CMD_ex, "ex", ex_edit,
- BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
+ BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_execute, "execute", ex_execute,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_exit, "exit", ex_exit,
- RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN),
+ RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_exusage, "exusage", ex_exusage,
- TRLBAR),
+ TRLBAR,
+ ADDR_LINES),
EX(CMD_file, "file", ex_file,
- RANGE|NOTADR|ZEROR|BANG|FILE1|TRLBAR),
+ RANGE|NOTADR|ZEROR|BANG|FILE1|TRLBAR,
+ ADDR_LINES),
EX(CMD_files, "files", buflist_list,
- BANG|TRLBAR|CMDWIN),
+ BANG|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_filetype, "filetype", ex_filetype,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_find, "find", ex_find,
- RANGE|NOTADR|BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
+ RANGE|NOTADR|BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_finally, "finally", ex_finally,
- TRLBAR|SBOXOK|CMDWIN),
+ TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_finish, "finish", ex_finish,
- TRLBAR|SBOXOK|CMDWIN),
+ TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_first, "first", ex_rewind,
- EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_fixdel, "fixdel", do_fixdel,
- TRLBAR|CMDWIN),
+ TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_fold, "fold", ex_fold,
- RANGE|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN),
+ RANGE|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_foldclose, "foldclose", ex_foldopen,
- RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN),
+ RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_folddoopen, "folddoopen", ex_folddo,
- RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM),
+ RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_folddoclosed, "folddoclosed", ex_folddo,
- RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM),
+ RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_foldopen, "foldopen", ex_foldopen,
- RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN),
+ RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_for, "for", ex_while,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_function, "function", ex_function,
- EXTRA|BANG|CMDWIN),
+ EXTRA|BANG|CMDWIN,
+ ADDR_LINES),
EX(CMD_global, "global", ex_global,
- RANGE|WHOLEFOLD|BANG|EXTRA|DFLALL|SBOXOK|CMDWIN),
+ RANGE|WHOLEFOLD|BANG|EXTRA|DFLALL|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_goto, "goto", ex_goto,
- RANGE|NOTADR|COUNT|TRLBAR|SBOXOK|CMDWIN),
+ RANGE|NOTADR|COUNT|TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_grep, "grep", ex_make,
- RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+ ADDR_LINES),
EX(CMD_grepadd, "grepadd", ex_make,
- RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+ ADDR_LINES),
EX(CMD_gui, "gui", ex_gui,
- BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN),
+ BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_gvim, "gvim", ex_gui,
- BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN),
+ BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_help, "help", ex_help,
- BANG|EXTRA|NOTRLCOM),
+ BANG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_helpclose, "helpclose", ex_helpclose,
- RANGE|NOTADR|COUNT|TRLBAR),
+ RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_helpfind, "helpfind", ex_helpfind,
- EXTRA|NOTRLCOM),
+ EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_helpgrep, "helpgrep", ex_helpgrep,
- EXTRA|NOTRLCOM|NEEDARG),
+ EXTRA|NOTRLCOM|NEEDARG,
+ ADDR_LINES),
EX(CMD_helptags, "helptags", ex_helptags,
- NEEDARG|FILES|TRLBAR|CMDWIN),
+ NEEDARG|FILES|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_hardcopy, "hardcopy", ex_hardcopy,
- RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG),
+ RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG,
+ ADDR_LINES),
EX(CMD_highlight, "highlight", ex_highlight,
- BANG|EXTRA|TRLBAR|SBOXOK|CMDWIN),
+ BANG|EXTRA|TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_hide, "hide", ex_hide,
- BANG|EXTRA|NOTRLCOM),
+ BANG|RANGE|NOTADR|COUNT|EXTRA|NOTRLCOM,
+ ADDR_WINDOWS),
EX(CMD_history, "history", ex_history,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_insert, "insert", ex_append,
- BANG|RANGE|TRLBAR|CMDWIN|MODIFY),
+ BANG|RANGE|TRLBAR|CMDWIN|MODIFY,
+ ADDR_LINES),
EX(CMD_iabbrev, "iabbrev", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_iabclear, "iabclear", ex_abclear,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_if, "if", ex_if,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_ijump, "ijump", ex_findpat,
- BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA),
+ BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA,
+ ADDR_LINES),
EX(CMD_ilist, "ilist", ex_findpat,
- BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN),
+ BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN,
+ ADDR_LINES),
EX(CMD_imap, "imap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_imapclear, "imapclear", ex_mapclear,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_imenu, "imenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_inoremap, "inoremap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_inoreabbrev, "inoreabbrev", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_inoremenu, "inoremenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_intro, "intro", ex_intro,
- TRLBAR|CMDWIN),
+ TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_isearch, "isearch", ex_findpat,
- BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN),
+ BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN,
+ ADDR_LINES),
EX(CMD_isplit, "isplit", ex_findpat,
- BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA),
+ BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA,
+ ADDR_LINES),
EX(CMD_iunmap, "iunmap", ex_unmap,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_iunabbrev, "iunabbrev", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_iunmenu, "iunmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_join, "join", ex_join,
- BANG|RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY),
+ BANG|RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY,
+ ADDR_LINES),
EX(CMD_jumps, "jumps", ex_jumps,
- TRLBAR|CMDWIN),
+ TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_k, "k", ex_mark,
- RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN),
+ RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_keepmarks, "keepmarks", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
+ NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_keepjumps, "keepjumps", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
+ NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_keeppatterns, "keeppatterns", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
+ NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_keepalt, "keepalt", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
+ NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_list, "list", ex_print,
- RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN),
+ RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_lNext, "lNext", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_lNfile, "lNfile", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_last, "last", ex_last,
- EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_language, "language", ex_language,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_laddexpr, "laddexpr", ex_cexpr,
- NEEDARG|WORD1|NOTRLCOM|TRLBAR),
+ NEEDARG|WORD1|NOTRLCOM|TRLBAR,
+ ADDR_LINES),
EX(CMD_laddbuffer, "laddbuffer", ex_cbuffer,
- RANGE|NOTADR|WORD1|TRLBAR),
+ RANGE|NOTADR|WORD1|TRLBAR,
+ ADDR_LINES),
EX(CMD_laddfile, "laddfile", ex_cfile,
- TRLBAR|FILE1),
+ TRLBAR|FILE1,
+ ADDR_LINES),
EX(CMD_later, "later", ex_later,
- TRLBAR|EXTRA|NOSPC|CMDWIN),
+ TRLBAR|EXTRA|NOSPC|CMDWIN,
+ ADDR_LINES),
EX(CMD_lbuffer, "lbuffer", ex_cbuffer,
- BANG|RANGE|NOTADR|WORD1|TRLBAR),
+ BANG|RANGE|NOTADR|WORD1|TRLBAR,
+ ADDR_LINES),
EX(CMD_lcd, "lcd", ex_cd,
- BANG|FILE1|TRLBAR|CMDWIN),
+ BANG|FILE1|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_lchdir, "lchdir", ex_cd,
- BANG|FILE1|TRLBAR|CMDWIN),
+ BANG|FILE1|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_lclose, "lclose", ex_cclose,
- RANGE|NOTADR|COUNT|TRLBAR),
+ RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_lcscope, "lcscope", do_cscope,
- EXTRA|NOTRLCOM|XFILE),
+ EXTRA|NOTRLCOM|XFILE,
+ ADDR_LINES),
EX(CMD_left, "left", ex_align,
- TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
+ TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
+ ADDR_LINES),
EX(CMD_leftabove, "leftabove", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
+ NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_let, "let", ex_let,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_lexpr, "lexpr", ex_cexpr,
- NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG),
+ NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_lfile, "lfile", ex_cfile,
- TRLBAR|FILE1|BANG),
+ TRLBAR|FILE1|BANG,
+ ADDR_LINES),
EX(CMD_lfirst, "lfirst", ex_cc,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_lgetfile, "lgetfile", ex_cfile,
- TRLBAR|FILE1),
+ TRLBAR|FILE1,
+ ADDR_LINES),
EX(CMD_lgetbuffer, "lgetbuffer", ex_cbuffer,
- RANGE|NOTADR|WORD1|TRLBAR),
+ RANGE|NOTADR|WORD1|TRLBAR,
+ ADDR_LINES),
EX(CMD_lgetexpr, "lgetexpr", ex_cexpr,
- NEEDARG|WORD1|NOTRLCOM|TRLBAR),
+ NEEDARG|WORD1|NOTRLCOM|TRLBAR,
+ ADDR_LINES),
EX(CMD_lgrep, "lgrep", ex_make,
- RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+ ADDR_LINES),
EX(CMD_lgrepadd, "lgrepadd", ex_make,
- RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+ ADDR_LINES),
EX(CMD_lhelpgrep, "lhelpgrep", ex_helpgrep,
- EXTRA|NOTRLCOM|NEEDARG),
+ EXTRA|NOTRLCOM|NEEDARG,
+ ADDR_LINES),
EX(CMD_ll, "ll", ex_cc,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_llast, "llast", ex_cc,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_llist, "llist", qf_list,
- BANG|EXTRA|TRLBAR|CMDWIN),
+ BANG|EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_lmap, "lmap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_lmapclear, "lmapclear", ex_mapclear,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_lmake, "lmake", ex_make,
- BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+ ADDR_LINES),
EX(CMD_lnoremap, "lnoremap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_lnext, "lnext", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_lnewer, "lnewer", qf_age,
- RANGE|NOTADR|COUNT|TRLBAR),
+ RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_lnfile, "lnfile", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_loadview, "loadview", ex_loadview,
- FILE1|TRLBAR),
+ FILE1|TRLBAR,
+ ADDR_LINES),
EX(CMD_loadkeymap, "loadkeymap", ex_loadkeymap,
- CMDWIN),
+ CMDWIN,
+ ADDR_LINES),
EX(CMD_lockmarks, "lockmarks", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
+ NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_lockvar, "lockvar", ex_lockvar,
- BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN),
+ BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_lolder, "lolder", qf_age,
- RANGE|NOTADR|COUNT|TRLBAR),
+ RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_lopen, "lopen", ex_copen,
- RANGE|NOTADR|COUNT|TRLBAR),
+ RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_lprevious, "lprevious", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_lpfile, "lpfile", ex_cnext,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_lrewind, "lrewind", ex_cc,
- RANGE|NOTADR|COUNT|TRLBAR|BANG),
+ RANGE|NOTADR|COUNT|TRLBAR|BANG,
+ ADDR_LINES),
EX(CMD_ltag, "ltag", ex_tag,
- NOTADR|TRLBAR|BANG|WORD1),
+ NOTADR|TRLBAR|BANG|WORD1,
+ ADDR_LINES),
EX(CMD_lunmap, "lunmap", ex_unmap,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_lua, "lua", ex_lua,
- RANGE|EXTRA|NEEDARG|CMDWIN),
+ RANGE|EXTRA|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_luado, "luado", ex_luado,
- RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN),
+ RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_luafile, "luafile", ex_luafile,
- RANGE|FILE1|NEEDARG|CMDWIN),
+ RANGE|FILE1|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_lvimgrep, "lvimgrep", ex_vimgrep,
- RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+ ADDR_LINES),
EX(CMD_lvimgrepadd, "lvimgrepadd", ex_vimgrep,
- RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+ ADDR_LINES),
EX(CMD_lwindow, "lwindow", ex_cwindow,
- RANGE|NOTADR|COUNT|TRLBAR),
+ RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_ls, "ls", buflist_list,
- BANG|TRLBAR|CMDWIN),
+ BANG|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_move, "move", ex_copymove,
- RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY),
+ RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
+ ADDR_LINES),
EX(CMD_mark, "mark", ex_mark,
- RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN),
+ RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_make, "make", ex_make,
- BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+ ADDR_LINES),
EX(CMD_map, "map", ex_map,
- BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_mapclear, "mapclear", ex_mapclear,
- EXTRA|BANG|TRLBAR|CMDWIN),
+ EXTRA|BANG|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_marks, "marks", do_marks,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_match, "match", ex_match,
- RANGE|NOTADR|EXTRA|CMDWIN),
+ RANGE|NOTADR|EXTRA|CMDWIN,
+ ADDR_LINES),
EX(CMD_menu, "menu", ex_menu,
- RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_menutranslate, "menutranslate", ex_menutranslate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_messages, "messages", ex_messages,
- TRLBAR|CMDWIN),
+ TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_mkexrc, "mkexrc", ex_mkrc,
- BANG|FILE1|TRLBAR|CMDWIN),
+ BANG|FILE1|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_mksession, "mksession", ex_mkrc,
- BANG|FILE1|TRLBAR),
+ BANG|FILE1|TRLBAR,
+ ADDR_LINES),
EX(CMD_mkspell, "mkspell", ex_mkspell,
- BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+ ADDR_LINES),
EX(CMD_mkvimrc, "mkvimrc", ex_mkrc,
- BANG|FILE1|TRLBAR|CMDWIN),
+ BANG|FILE1|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_mkview, "mkview", ex_mkrc,
- BANG|FILE1|TRLBAR),
+ BANG|FILE1|TRLBAR,
+ ADDR_LINES),
EX(CMD_mode, "mode", ex_mode,
- WORD1|TRLBAR|CMDWIN),
+ WORD1|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_mzscheme, "mzscheme", ex_mzscheme,
- RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN|SBOXOK),
+ RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN|SBOXOK,
+ ADDR_LINES),
EX(CMD_mzfile, "mzfile", ex_mzfile,
- RANGE|FILE1|NEEDARG|CMDWIN),
+ RANGE|FILE1|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_next, "next", ex_next,
- RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
+ RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_nbkey, "nbkey", ex_nbkey,
- EXTRA|NOTADR|NEEDARG),
+ EXTRA|NOTADR|NEEDARG,
+ ADDR_LINES),
EX(CMD_nbclose, "nbclose", ex_nbclose,
- TRLBAR|CMDWIN),
+ TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_nbstart, "nbstart", ex_nbstart,
- WORD1|TRLBAR|CMDWIN),
+ WORD1|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_new, "new", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
+ BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_nmap, "nmap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_nmapclear, "nmapclear", ex_mapclear,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_nmenu, "nmenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_nnoremap, "nnoremap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_nnoremenu, "nnoremenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_noremap, "noremap", ex_map,
- BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_noautocmd, "noautocmd", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
+ NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_nohlsearch, "nohlsearch", ex_nohlsearch,
- TRLBAR|SBOXOK|CMDWIN),
+ TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_noreabbrev, "noreabbrev", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_noremenu, "noremenu", ex_menu,
- RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_noswapfile, "noswapfile", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
+ NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_normal, "normal", ex_normal,
- RANGE|BANG|EXTRA|NEEDARG|NOTRLCOM|USECTRLV|SBOXOK|CMDWIN),
+ RANGE|BANG|EXTRA|NEEDARG|NOTRLCOM|USECTRLV|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_number, "number", ex_print,
- RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN),
+ RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_nunmap, "nunmap", ex_unmap,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_nunmenu, "nunmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_open, "open", ex_open,
- RANGE|BANG|EXTRA),
+ RANGE|BANG|EXTRA,
+ ADDR_LINES),
EX(CMD_oldfiles, "oldfiles", ex_oldfiles,
- BANG|TRLBAR|SBOXOK|CMDWIN),
+ BANG|TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_omap, "omap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_omapclear, "omapclear", ex_mapclear,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_omenu, "omenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_only, "only", ex_only,
- BANG|TRLBAR),
+ BANG|NOTADR|RANGE|COUNT|TRLBAR,
+ ADDR_WINDOWS),
EX(CMD_onoremap, "onoremap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_onoremenu, "onoremenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_options, "options", ex_options,
- TRLBAR),
+ TRLBAR,
+ ADDR_LINES),
EX(CMD_ounmap, "ounmap", ex_unmap,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_ounmenu, "ounmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_ownsyntax, "ownsyntax", ex_ownsyntax,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_print, "print", ex_print,
- RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|SBOXOK),
+ RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|SBOXOK,
+ ADDR_LINES),
EX(CMD_pclose, "pclose", ex_pclose,
- BANG|TRLBAR),
+ BANG|TRLBAR,
+ ADDR_LINES),
EX(CMD_perl, "perl", ex_perl,
- RANGE|EXTRA|DFLALL|NEEDARG|SBOXOK|CMDWIN),
+ RANGE|EXTRA|DFLALL|NEEDARG|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_perldo, "perldo", ex_perldo,
- RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN),
+ RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_pedit, "pedit", ex_pedit,
- BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
+ BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_pop, "pop", ex_tag,
- RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR),
+ RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR,
+ ADDR_LINES),
EX(CMD_popup, "popup", ex_popup,
- NEEDARG|EXTRA|BANG|TRLBAR|NOTRLCOM|CMDWIN),
+ NEEDARG|EXTRA|BANG|TRLBAR|NOTRLCOM|CMDWIN,
+ ADDR_LINES),
EX(CMD_ppop, "ppop", ex_ptag,
- RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR),
+ RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR,
+ ADDR_LINES),
EX(CMD_preserve, "preserve", ex_preserve,
- TRLBAR),
+ TRLBAR,
+ ADDR_LINES),
EX(CMD_previous, "previous", ex_previous,
- EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_promptfind, "promptfind", gui_mch_find_dialog,
- EXTRA|NOTRLCOM|CMDWIN),
+ EXTRA|NOTRLCOM|CMDWIN,
+ ADDR_LINES),
EX(CMD_promptrepl, "promptrepl", gui_mch_replace_dialog,
- EXTRA|NOTRLCOM|CMDWIN),
+ EXTRA|NOTRLCOM|CMDWIN,
+ ADDR_LINES),
EX(CMD_profile, "profile", ex_profile,
- BANG|EXTRA|TRLBAR|CMDWIN),
+ BANG|EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_profdel, "profdel", ex_breakdel,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_psearch, "psearch", ex_psearch,
- BANG|RANGE|WHOLEFOLD|DFLALL|EXTRA),
+ BANG|RANGE|WHOLEFOLD|DFLALL|EXTRA,
+ ADDR_LINES),
EX(CMD_ptag, "ptag", ex_ptag,
- RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR),
+ RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR,
+ ADDR_LINES),
EX(CMD_ptNext, "ptNext", ex_ptag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR,
+ ADDR_LINES),
EX(CMD_ptfirst, "ptfirst", ex_ptag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR,
+ ADDR_LINES),
EX(CMD_ptjump, "ptjump", ex_ptag,
- BANG|TRLBAR|WORD1),
+ BANG|TRLBAR|WORD1,
+ ADDR_LINES),
EX(CMD_ptlast, "ptlast", ex_ptag,
- BANG|TRLBAR),
+ BANG|TRLBAR,
+ ADDR_LINES),
EX(CMD_ptnext, "ptnext", ex_ptag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR,
+ ADDR_LINES),
EX(CMD_ptprevious, "ptprevious", ex_ptag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR,
+ ADDR_LINES),
EX(CMD_ptrewind, "ptrewind", ex_ptag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR,
+ ADDR_LINES),
EX(CMD_ptselect, "ptselect", ex_ptag,
- BANG|TRLBAR|WORD1),
+ BANG|TRLBAR|WORD1,
+ ADDR_LINES),
EX(CMD_put, "put", ex_put,
- RANGE|WHOLEFOLD|BANG|REGSTR|TRLBAR|ZEROR|CMDWIN|MODIFY),
+ RANGE|WHOLEFOLD|BANG|REGSTR|TRLBAR|ZEROR|CMDWIN|MODIFY,
+ ADDR_LINES),
EX(CMD_pwd, "pwd", ex_pwd,
- TRLBAR|CMDWIN),
+ TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_python, "python", ex_python,
- RANGE|EXTRA|NEEDARG|CMDWIN),
+ RANGE|EXTRA|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_pydo, "pydo", ex_pydo,
- RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN),
+ RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_pyfile, "pyfile", ex_pyfile,
- RANGE|FILE1|NEEDARG|CMDWIN),
+ RANGE|FILE1|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_py3, "py3", ex_py3,
- RANGE|EXTRA|NEEDARG|CMDWIN),
+ RANGE|EXTRA|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_py3do, "py3do", ex_py3do,
- RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN),
+ RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_python3, "python3", ex_py3,
- RANGE|EXTRA|NEEDARG|CMDWIN),
+ RANGE|EXTRA|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_py3file, "py3file", ex_py3file,
- RANGE|FILE1|NEEDARG|CMDWIN),
+ RANGE|FILE1|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_quit, "quit", ex_quit,
- BANG|TRLBAR|CMDWIN),
+ BANG|RANGE|COUNT|NOTADR|TRLBAR|CMDWIN,
+ ADDR_WINDOWS),
EX(CMD_quitall, "quitall", ex_quit_all,
- BANG|TRLBAR),
+ BANG|TRLBAR,
+ ADDR_LINES),
EX(CMD_qall, "qall", ex_quit_all,
- BANG|TRLBAR|CMDWIN),
+ BANG|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_read, "read", ex_read,
- BANG|RANGE|WHOLEFOLD|FILE1|ARGOPT|TRLBAR|ZEROR|CMDWIN|MODIFY),
+ BANG|RANGE|WHOLEFOLD|FILE1|ARGOPT|TRLBAR|ZEROR|CMDWIN|MODIFY,
+ ADDR_LINES),
EX(CMD_recover, "recover", ex_recover,
- BANG|FILE1|TRLBAR),
+ BANG|FILE1|TRLBAR,
+ ADDR_LINES),
EX(CMD_redo, "redo", ex_redo,
- TRLBAR|CMDWIN),
+ TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_redir, "redir", ex_redir,
- BANG|FILES|TRLBAR|CMDWIN),
+ BANG|FILES|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_redraw, "redraw", ex_redraw,
- BANG|TRLBAR|CMDWIN),
+ BANG|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_redrawstatus, "redrawstatus", ex_redrawstatus,
- BANG|TRLBAR|CMDWIN),
+ BANG|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_registers, "registers", ex_display,
- EXTRA|NOTRLCOM|TRLBAR|CMDWIN),
+ EXTRA|NOTRLCOM|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_resize, "resize", ex_resize,
- RANGE|NOTADR|TRLBAR|WORD1),
+ RANGE|NOTADR|TRLBAR|WORD1,
+ ADDR_LINES),
EX(CMD_retab, "retab", ex_retab,
- TRLBAR|RANGE|WHOLEFOLD|DFLALL|BANG|WORD1|CMDWIN|MODIFY),
+ TRLBAR|RANGE|WHOLEFOLD|DFLALL|BANG|WORD1|CMDWIN|MODIFY,
+ ADDR_LINES),
EX(CMD_return, "return", ex_return,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_rewind, "rewind", ex_rewind,
- EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_right, "right", ex_align,
- TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
+ TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
+ ADDR_LINES),
EX(CMD_rightbelow, "rightbelow", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
+ NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_runtime, "runtime", ex_runtime,
- BANG|NEEDARG|FILES|TRLBAR|SBOXOK|CMDWIN),
+ BANG|NEEDARG|FILES|TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_ruby, "ruby", ex_ruby,
- RANGE|EXTRA|NEEDARG|CMDWIN),
+ RANGE|EXTRA|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_rubydo, "rubydo", ex_rubydo,
- RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN),
+ RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_rubyfile, "rubyfile", ex_rubyfile,
- RANGE|FILE1|NEEDARG|CMDWIN),
+ RANGE|FILE1|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_rundo, "rundo", ex_rundo,
- NEEDARG|FILE1),
+ NEEDARG|FILE1,
+ ADDR_LINES),
EX(CMD_rviminfo, "rviminfo", ex_viminfo,
- BANG|FILE1|TRLBAR|CMDWIN),
+ BANG|FILE1|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_substitute, "substitute", do_sub,
- RANGE|WHOLEFOLD|EXTRA|CMDWIN),
+ RANGE|WHOLEFOLD|EXTRA|CMDWIN,
+ ADDR_LINES),
EX(CMD_sNext, "sNext", ex_previous,
- EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_sargument, "sargument", ex_argument,
- BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR),
+ BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_ARGUMENTS),
EX(CMD_sall, "sall", ex_all,
- BANG|RANGE|NOTADR|COUNT|TRLBAR),
+ BANG|RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_sandbox, "sandbox", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
+ NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_saveas, "saveas", ex_write,
- BANG|DFLALL|FILE1|ARGOPT|CMDWIN|TRLBAR),
+ BANG|DFLALL|FILE1|ARGOPT|CMDWIN|TRLBAR,
+ ADDR_LINES),
EX(CMD_sbuffer, "sbuffer", ex_buffer,
- BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR),
+ BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR,
+ ADDR_UNLOADED_BUFFERS),
EX(CMD_sbNext, "sbNext", ex_bprevious,
- RANGE|NOTADR|COUNT|EDITCMD|TRLBAR),
+ RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
+ ADDR_LINES),
EX(CMD_sball, "sball", ex_buffer_all,
- RANGE|NOTADR|COUNT|EDITCMD|TRLBAR),
+ RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
+ ADDR_LINES),
EX(CMD_sbfirst, "sbfirst", ex_brewind,
- EDITCMD|TRLBAR),
+ EDITCMD|TRLBAR,
+ ADDR_LINES),
EX(CMD_sblast, "sblast", ex_blast,
- EDITCMD|TRLBAR),
+ EDITCMD|TRLBAR,
+ ADDR_LINES),
EX(CMD_sbmodified, "sbmodified", ex_bmodified,
- RANGE|NOTADR|COUNT|EDITCMD|TRLBAR),
+ RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
+ ADDR_LINES),
EX(CMD_sbnext, "sbnext", ex_bnext,
- RANGE|NOTADR|COUNT|EDITCMD|TRLBAR),
+ RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
+ ADDR_LINES),
EX(CMD_sbprevious, "sbprevious", ex_bprevious,
- RANGE|NOTADR|COUNT|EDITCMD|TRLBAR),
+ RANGE|NOTADR|COUNT|EDITCMD|TRLBAR,
+ ADDR_LINES),
EX(CMD_sbrewind, "sbrewind", ex_brewind,
- EDITCMD|TRLBAR),
+ EDITCMD|TRLBAR,
+ ADDR_LINES),
EX(CMD_scriptnames, "scriptnames", ex_scriptnames,
- TRLBAR|CMDWIN),
+ TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_scriptencoding, "scriptencoding", ex_scriptencoding,
- WORD1|TRLBAR|CMDWIN),
+ WORD1|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_scscope, "scscope", do_scscope,
- EXTRA|NOTRLCOM),
+ EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_set, "set", ex_set,
- TRLBAR|EXTRA|CMDWIN|SBOXOK),
+ TRLBAR|EXTRA|CMDWIN|SBOXOK,
+ ADDR_LINES),
EX(CMD_setfiletype, "setfiletype", ex_setfiletype,
- TRLBAR|EXTRA|NEEDARG|CMDWIN),
+ TRLBAR|EXTRA|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_setglobal, "setglobal", ex_set,
- TRLBAR|EXTRA|CMDWIN|SBOXOK),
+ TRLBAR|EXTRA|CMDWIN|SBOXOK,
+ ADDR_LINES),
EX(CMD_setlocal, "setlocal", ex_set,
- TRLBAR|EXTRA|CMDWIN|SBOXOK),
+ TRLBAR|EXTRA|CMDWIN|SBOXOK,
+ ADDR_LINES),
EX(CMD_sfind, "sfind", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
+ BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_sfirst, "sfirst", ex_rewind,
- EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_shell, "shell", ex_shell,
- TRLBAR|CMDWIN),
+ TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_simalt, "simalt", ex_simalt,
- NEEDARG|WORD1|TRLBAR|CMDWIN),
+ NEEDARG|WORD1|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_sign, "sign", ex_sign,
- NEEDARG|RANGE|NOTADR|EXTRA|CMDWIN),
+ NEEDARG|RANGE|NOTADR|EXTRA|CMDWIN,
+ ADDR_LINES),
EX(CMD_silent, "silent", ex_wrongmodifier,
- NEEDARG|EXTRA|BANG|NOTRLCOM|SBOXOK|CMDWIN),
+ NEEDARG|EXTRA|BANG|NOTRLCOM|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_sleep, "sleep", ex_sleep,
- RANGE|NOTADR|COUNT|EXTRA|TRLBAR|CMDWIN),
+ RANGE|NOTADR|COUNT|EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_slast, "slast", ex_last,
- EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_smagic, "smagic", ex_submagic,
- RANGE|WHOLEFOLD|EXTRA|CMDWIN),
+ RANGE|WHOLEFOLD|EXTRA|CMDWIN,
+ ADDR_LINES),
EX(CMD_smap, "smap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_smapclear, "smapclear", ex_mapclear,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_smenu, "smenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_snext, "snext", ex_next,
- RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
+ RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_sniff, "sniff", ex_sniff,
- EXTRA|TRLBAR),
+ EXTRA|TRLBAR,
+ ADDR_LINES),
EX(CMD_snomagic, "snomagic", ex_submagic,
- RANGE|WHOLEFOLD|EXTRA|CMDWIN),
+ RANGE|WHOLEFOLD|EXTRA|CMDWIN,
+ ADDR_LINES),
EX(CMD_snoremap, "snoremap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_snoremenu, "snoremenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_source, "source", ex_source,
- BANG|FILE1|TRLBAR|SBOXOK|CMDWIN),
+ BANG|FILE1|TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_sort, "sort", ex_sort,
- RANGE|DFLALL|WHOLEFOLD|BANG|EXTRA|NOTRLCOM|MODIFY),
+ RANGE|DFLALL|WHOLEFOLD|BANG|EXTRA|NOTRLCOM|MODIFY,
+ ADDR_LINES),
EX(CMD_split, "split", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
+ BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_spellgood, "spellgood", ex_spell,
- BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR),
+ BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR,
+ ADDR_LINES),
EX(CMD_spelldump, "spelldump", ex_spelldump,
- BANG|TRLBAR),
+ BANG|TRLBAR,
+ ADDR_LINES),
EX(CMD_spellinfo, "spellinfo", ex_spellinfo,
- TRLBAR),
+ TRLBAR,
+ ADDR_LINES),
EX(CMD_spellrepall, "spellrepall", ex_spellrepall,
- TRLBAR),
+ TRLBAR,
+ ADDR_LINES),
EX(CMD_spellundo, "spellundo", ex_spell,
- BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR),
+ BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR,
+ ADDR_LINES),
EX(CMD_spellwrong, "spellwrong", ex_spell,
- BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR),
+ BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR,
+ ADDR_LINES),
EX(CMD_sprevious, "sprevious", ex_previous,
- EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_srewind, "srewind", ex_rewind,
- EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_stop, "stop", ex_stop,
- TRLBAR|BANG|CMDWIN),
+ TRLBAR|BANG|CMDWIN,
+ ADDR_LINES),
EX(CMD_stag, "stag", ex_stag,
- RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR),
+ RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR,
+ ADDR_LINES),
EX(CMD_startinsert, "startinsert", ex_startinsert,
- BANG|TRLBAR|CMDWIN),
+ BANG|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_startgreplace, "startgreplace", ex_startinsert,
- BANG|TRLBAR|CMDWIN),
+ BANG|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_startreplace, "startreplace", ex_startinsert,
- BANG|TRLBAR|CMDWIN),
+ BANG|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_stopinsert, "stopinsert", ex_stopinsert,
- BANG|TRLBAR|CMDWIN),
+ BANG|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_stjump, "stjump", ex_stag,
- BANG|TRLBAR|WORD1),
+ BANG|TRLBAR|WORD1,
+ ADDR_LINES),
EX(CMD_stselect, "stselect", ex_stag,
- BANG|TRLBAR|WORD1),
+ BANG|TRLBAR|WORD1,
+ ADDR_LINES),
EX(CMD_sunhide, "sunhide", ex_buffer_all,
- RANGE|NOTADR|COUNT|TRLBAR),
+ RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_sunmap, "sunmap", ex_unmap,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_sunmenu, "sunmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_suspend, "suspend", ex_stop,
- TRLBAR|BANG|CMDWIN),
+ TRLBAR|BANG|CMDWIN,
+ ADDR_LINES),
EX(CMD_sview, "sview", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
+ BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_swapname, "swapname", ex_swapname,
- TRLBAR|CMDWIN),
+ TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_syntax, "syntax", ex_syntax,
- EXTRA|NOTRLCOM|CMDWIN),
+ EXTRA|NOTRLCOM|CMDWIN,
+ ADDR_LINES),
EX(CMD_syntime, "syntime", ex_syntime,
- NEEDARG|WORD1|TRLBAR|CMDWIN),
+ NEEDARG|WORD1|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_syncbind, "syncbind", ex_syncbind,
- TRLBAR),
+ TRLBAR,
+ ADDR_LINES),
EX(CMD_t, "t", ex_copymove,
- RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY),
+ RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
+ ADDR_LINES),
EX(CMD_tNext, "tNext", ex_tag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR,
+ ADDR_LINES),
EX(CMD_tag, "tag", ex_tag,
- RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR),
+ RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR,
+ ADDR_LINES),
EX(CMD_tags, "tags", do_tags,
- TRLBAR|CMDWIN),
+ TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_tab, "tab", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
+ NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_tabclose, "tabclose", ex_tabclose,
- RANGE|NOTADR|COUNT|BANG|TRLBAR|CMDWIN),
+ RANGE|NOTADR|COUNT|BANG|TRLBAR|CMDWIN,
+ ADDR_TABS),
EX(CMD_tabdo, "tabdo", ex_listdo,
- NEEDARG|EXTRA|NOTRLCOM),
+ NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_tabedit, "tabedit", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR),
+ BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_TABS),
EX(CMD_tabfind, "tabfind", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|NEEDARG|TRLBAR),
+ BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|NEEDARG|TRLBAR,
+ ADDR_TABS),
EX(CMD_tabfirst, "tabfirst", ex_tabnext,
- TRLBAR),
+ TRLBAR,
+ ADDR_LINES),
EX(CMD_tabmove, "tabmove", ex_tabmove,
- RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR),
+ RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR,
+ ADDR_TABS),
EX(CMD_tablast, "tablast", ex_tabnext,
- TRLBAR),
+ TRLBAR,
+ ADDR_LINES),
EX(CMD_tabnext, "tabnext", ex_tabnext,
- RANGE|NOTADR|COUNT|TRLBAR),
+ RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_tabnew, "tabnew", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR),
+ BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_TABS),
EX(CMD_tabonly, "tabonly", ex_tabonly,
- BANG|TRLBAR|CMDWIN),
+ BANG|RANGE|NOTADR|TRLBAR|CMDWIN,
+ ADDR_TABS),
EX(CMD_tabprevious, "tabprevious", ex_tabnext,
- RANGE|NOTADR|COUNT|TRLBAR),
+ RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_tabNext, "tabNext", ex_tabnext,
- RANGE|NOTADR|COUNT|TRLBAR),
+ RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_tabrewind, "tabrewind", ex_tabnext,
- TRLBAR),
+ TRLBAR,
+ ADDR_LINES),
EX(CMD_tabs, "tabs", ex_tabs,
- TRLBAR|CMDWIN),
+ TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_tcl, "tcl", ex_tcl,
- RANGE|EXTRA|NEEDARG|CMDWIN),
+ RANGE|EXTRA|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_tcldo, "tcldo", ex_tcldo,
- RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN),
+ RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_tclfile, "tclfile", ex_tclfile,
- RANGE|FILE1|NEEDARG|CMDWIN),
+ RANGE|FILE1|NEEDARG|CMDWIN,
+ ADDR_LINES),
EX(CMD_tearoff, "tearoff", ex_tearoff,
- NEEDARG|EXTRA|TRLBAR|NOTRLCOM|CMDWIN),
+ NEEDARG|EXTRA|TRLBAR|NOTRLCOM|CMDWIN,
+ ADDR_LINES),
EX(CMD_tfirst, "tfirst", ex_tag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR,
+ ADDR_LINES),
EX(CMD_throw, "throw", ex_throw,
- EXTRA|NEEDARG|SBOXOK|CMDWIN),
+ EXTRA|NEEDARG|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_tjump, "tjump", ex_tag,
- BANG|TRLBAR|WORD1),
+ BANG|TRLBAR|WORD1,
+ ADDR_LINES),
EX(CMD_tlast, "tlast", ex_tag,
- BANG|TRLBAR),
+ BANG|TRLBAR,
+ ADDR_LINES),
EX(CMD_tmenu, "tmenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_tnext, "tnext", ex_tag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR,
+ ADDR_LINES),
EX(CMD_topleft, "topleft", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
+ NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_tprevious, "tprevious", ex_tag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR,
+ ADDR_LINES),
EX(CMD_trewind, "trewind", ex_tag,
- RANGE|NOTADR|BANG|TRLBAR|ZEROR),
+ RANGE|NOTADR|BANG|TRLBAR|ZEROR,
+ ADDR_LINES),
EX(CMD_try, "try", ex_try,
- TRLBAR|SBOXOK|CMDWIN),
+ TRLBAR|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_tselect, "tselect", ex_tag,
- BANG|TRLBAR|WORD1),
+ BANG|TRLBAR|WORD1,
+ ADDR_LINES),
EX(CMD_tunmenu, "tunmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_undo, "undo", ex_undo,
- RANGE|NOTADR|COUNT|ZEROR|TRLBAR|CMDWIN),
+ RANGE|NOTADR|COUNT|ZEROR|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_undojoin, "undojoin", ex_undojoin,
- TRLBAR|CMDWIN),
+ TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_undolist, "undolist", ex_undolist,
- TRLBAR|CMDWIN),
+ TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_unabbreviate, "unabbreviate", ex_abbreviate,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_unhide, "unhide", ex_buffer_all,
- RANGE|NOTADR|COUNT|TRLBAR),
+ RANGE|NOTADR|COUNT|TRLBAR,
+ ADDR_LINES),
EX(CMD_unlet, "unlet", ex_unlet,
- BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN),
+ BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_unlockvar, "unlockvar", ex_lockvar,
- BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN),
+ BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_unmap, "unmap", ex_unmap,
- BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_unmenu, "unmenu", ex_menu,
- BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_unsilent, "unsilent", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_update, "update", ex_update,
- RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR),
+ RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR,
+ ADDR_LINES),
EX(CMD_vglobal, "vglobal", ex_global,
- RANGE|WHOLEFOLD|EXTRA|DFLALL|CMDWIN),
+ RANGE|WHOLEFOLD|EXTRA|DFLALL|CMDWIN,
+ ADDR_LINES),
EX(CMD_version, "version", ex_version,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_verbose, "verbose", ex_wrongmodifier,
- NEEDARG|RANGE|NOTADR|EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ NEEDARG|RANGE|NOTADR|EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_vertical, "vertical", ex_wrongmodifier,
- NEEDARG|EXTRA|NOTRLCOM),
+ NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_visual, "visual", ex_edit,
- BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
+ BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_view, "view", ex_edit,
- BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
+ BANG|FILE1|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_vimgrep, "vimgrep", ex_vimgrep,
- RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+ ADDR_LINES),
EX(CMD_vimgrepadd, "vimgrepadd", ex_vimgrep,
- RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+ RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE,
+ ADDR_LINES),
EX(CMD_viusage, "viusage", ex_viusage,
- TRLBAR),
+ TRLBAR,
+ ADDR_LINES),
EX(CMD_vmap, "vmap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_vmapclear, "vmapclear", ex_mapclear,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_vmenu, "vmenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_vnoremap, "vnoremap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_vnew, "vnew", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
+ BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_vnoremenu, "vnoremenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_vsplit, "vsplit", ex_splitview,
- BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR),
+ BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_vunmap, "vunmap", ex_unmap,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_vunmenu, "vunmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_write, "write", ex_write,
- RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN),
+ RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_wNext, "wNext", ex_wnext,
- RANGE|WHOLEFOLD|NOTADR|BANG|FILE1|ARGOPT|TRLBAR),
+ RANGE|WHOLEFOLD|NOTADR|BANG|FILE1|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_wall, "wall", do_wqall,
- BANG|TRLBAR|CMDWIN),
+ BANG|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_while, "while", ex_while,
- EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
+ EXTRA|NOTRLCOM|SBOXOK|CMDWIN,
+ ADDR_LINES),
EX(CMD_winsize, "winsize", ex_winsize,
- EXTRA|NEEDARG|TRLBAR),
+ EXTRA|NEEDARG|TRLBAR,
+ ADDR_LINES),
EX(CMD_wincmd, "wincmd", ex_wincmd,
- NEEDARG|WORD1|RANGE|NOTADR),
+ NEEDARG|WORD1|RANGE|NOTADR,
+ ADDR_LINES),
EX(CMD_windo, "windo", ex_listdo,
- BANG|NEEDARG|EXTRA|NOTRLCOM),
+ BANG|NEEDARG|EXTRA|NOTRLCOM,
+ ADDR_LINES),
EX(CMD_winpos, "winpos", ex_winpos,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_wnext, "wnext", ex_wnext,
- RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR),
+ RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_wprevious, "wprevious", ex_wnext,
- RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR),
+ RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_wq, "wq", ex_exit,
- RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR),
+ RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR,
+ ADDR_LINES),
EX(CMD_wqall, "wqall", do_wqall,
- BANG|FILE1|ARGOPT|DFLALL|TRLBAR),
+ BANG|FILE1|ARGOPT|DFLALL|TRLBAR,
+ ADDR_LINES),
EX(CMD_wsverb, "wsverb", ex_wsverb,
- EXTRA|NOTADR|NEEDARG),
+ EXTRA|NOTADR|NEEDARG,
+ ADDR_LINES),
EX(CMD_wundo, "wundo", ex_wundo,
- BANG|NEEDARG|FILE1),
+ BANG|NEEDARG|FILE1,
+ ADDR_LINES),
EX(CMD_wviminfo, "wviminfo", ex_viminfo,
- BANG|FILE1|TRLBAR|CMDWIN),
+ BANG|FILE1|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_xit, "xit", ex_exit,
- RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN),
+ RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_xall, "xall", do_wqall,
- BANG|TRLBAR),
+ BANG|TRLBAR,
+ ADDR_LINES),
EX(CMD_xmap, "xmap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_xmapclear, "xmapclear", ex_mapclear,
- EXTRA|TRLBAR|CMDWIN),
+ EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_xmenu, "xmenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_xnoremap, "xnoremap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_xnoremenu, "xnoremenu", ex_menu,
- RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_xunmap, "xunmap", ex_unmap,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_xunmenu, "xunmenu", ex_menu,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_LINES),
EX(CMD_yank, "yank", ex_operators,
- RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN),
+ RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_z, "z", ex_z,
- RANGE|WHOLEFOLD|EXTRA|EXFLAGS|TRLBAR|CMDWIN),
+ RANGE|WHOLEFOLD|EXTRA|EXFLAGS|TRLBAR|CMDWIN,
+ ADDR_LINES),
/* commands that don't start with a lowercase letter */
EX(CMD_bang, "!", ex_bang,
- RANGE|WHOLEFOLD|BANG|FILES|CMDWIN),
+ RANGE|WHOLEFOLD|BANG|FILES|CMDWIN,
+ ADDR_LINES),
EX(CMD_pound, "#", ex_print,
- RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN),
+ RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_and, "&", do_sub,
- RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
+ RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
+ ADDR_LINES),
EX(CMD_star, "*", ex_at,
- RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN),
+ RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_lshift, "<", ex_operators,
- RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY),
+ RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY,
+ ADDR_LINES),
EX(CMD_equal, "=", ex_equal,
- RANGE|TRLBAR|DFLALL|EXFLAGS|CMDWIN),
+ RANGE|TRLBAR|DFLALL|EXFLAGS|CMDWIN,
+ ADDR_LINES),
EX(CMD_rshift, ">", ex_operators,
- RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY),
+ RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY,
+ ADDR_LINES),
EX(CMD_at, "@", ex_at,
- RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN),
+ RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_Next, "Next", ex_previous,
- EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR),
+ EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR,
+ ADDR_LINES),
EX(CMD_Print, "Print", ex_print,
- RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN),
+ RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN,
+ ADDR_LINES),
EX(CMD_X, "X", ex_X,
- TRLBAR),
+ TRLBAR,
+ ADDR_LINES),
EX(CMD_tilde, "~", do_sub,
- RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
+ RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
+ ADDR_LINES),
#ifndef DO_DECLARE_EXCMD
#ifdef FEAT_USR_CMDS
@@ -1172,6 +1704,7 @@ struct exarg
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 addr_type; /* type of the count/range */
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 */
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index e90a36ecc..7b25cdb8f 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -60,6 +60,7 @@ static char_u *get_user_command_name __ARGS((int idx));
# define IS_USER_CMDIDX(idx) (FALSE)
#endif
+static int compute_buffer_local_count __ARGS((int addr_type, int lnum, int local));
#ifdef FEAT_EVAL
static char_u *do_one_cmd __ARGS((char_u **, int, struct condstack *, char_u *(*fgetline)(int, void *, int), void *cookie));
#else
@@ -133,7 +134,7 @@ static int getargopt __ARGS((exarg_T *eap));
#endif
static int check_more __ARGS((int, int));
-static linenr_T get_address __ARGS((char_u **, int skip, int to_other_file));
+static linenr_T get_address __ARGS((char_u **, int addr_type, int skip, int to_other_file));
static void get_flags __ARGS((exarg_T *eap));
#if !defined(FEAT_PERL) \
|| !defined(FEAT_PYTHON) || !defined(FEAT_PYTHON3) \
@@ -1680,6 +1681,39 @@ getline_cookie(fgetline, cookie)
}
#endif
+
+/*
+ * Helper function to apply an offset for buffer commands, i.e. ":bdelete",
+ * ":bwipeout", etc.
+ * Returns the buffer number.
+ */
+ static int
+compute_buffer_local_count(addr_type, lnum, offset)
+ int addr_type;
+ int lnum;
+ int offset;
+{
+ buf_T *buf;
+ int count = offset;
+
+ buf = firstbuf;
+ while (buf->b_next != NULL && buf->b_fnum < lnum)
+ buf = buf->b_next;
+ while (count != 0)
+ {
+ count += (count < 0) ? 1 : -1;
+ if (buf->b_prev == NULL)
+ break;
+ buf = (count < 0) ? buf->b_prev : buf->b_next;
+ if (addr_type == ADDR_LOADED_BUFFERS)
+ /* skip over unloaded buffers */
+ while (buf->b_prev != NULL && buf->b_ml.ml_mfp == NULL)
+ buf = (count < 0) ? buf->b_prev : buf->b_next;
+ }
+ return buf->b_fnum;
+}
+
+
/*
* Execute one Ex command.
*
@@ -1687,10 +1721,10 @@ getline_cookie(fgetline, cookie)
*
* 1. skip comment lines and leading space
* 2. handle command modifiers
- * 3. parse range
- * 4. parse command
- * 5. parse arguments
- * 6. switch on command name
+ * 3. parse command
+ * 4. parse range
+ * 6. parse arguments
+ * 7. switch on command name
*
* Note: "fgetline" can be NULL.
*
@@ -1730,6 +1764,9 @@ do_one_cmd(cmdlinep, sourcing,
#endif
cmdmod_T save_cmdmod;
int ni; /* set when Not Implemented */
+ win_T *wp;
+ tabpage_T *tp;
+ char_u *cmd;
vim_memset(&ea, 0, sizeof(ea));
ea.line1 = 1;
@@ -1769,7 +1806,7 @@ do_one_cmd(cmdlinep, sourcing,
for (;;)
{
/*
- * 1. skip comment lines and leading white space and colons
+ * 1. Skip comment lines and leading white space and colons.
*/
while (*ea.cmd == ' ' || *ea.cmd == '\t' || *ea.cmd == ':')
++ea.cmd;
@@ -1794,7 +1831,7 @@ do_one_cmd(cmdlinep, sourcing,
}
/*
- * 2. handle command modifiers.
+ * 2. Handle command modifiers.
*/
p = ea.cmd;
if (VIM_ISDIGIT(*ea.cmd))
@@ -2003,7 +2040,18 @@ do_one_cmd(cmdlinep, sourcing,
#endif
/*
- * 3. parse a range specifier of the form: addr [,addr] [;addr] ..
+ * 3. Skip over the range to find the command. Let "p" point to after it.
+ *
+ * We need the command to know what kind of range it uses.
+ */
+ cmd = ea.cmd;
+ ea.cmd = skip_range(ea.cmd, NULL);
+ if (*ea.cmd == '*' && vim_strchr(p_cpo, CPO_STAR) == NULL)
+ ea.cmd = skipwhite(ea.cmd + 1);
+ p = find_command(&ea, NULL);
+
+/*
+ * 4. parse a range specifier of the form: addr [,addr] [;addr] ..
*
* where 'addr' is:
*
@@ -2019,13 +2067,52 @@ do_one_cmd(cmdlinep, sourcing,
* is equal to the lower.
*/
+ if (ea.cmdidx != CMD_SIZE)
+ ea.addr_type = cmdnames[(int)ea.cmdidx].cmd_addr_type;
+ else
+ ea.addr_type = ADDR_LINES;
+ ea.cmd = cmd;
+
/* repeat for all ',' or ';' separated addresses */
for (;;)
{
ea.line1 = ea.line2;
- ea.line2 = curwin->w_cursor.lnum; /* default is current line number */
+ switch (ea.addr_type)
+ {
+ case ADDR_LINES:
+ /* default is current line number */
+ ea.line2 = curwin->w_cursor.lnum;
+ break;
+ case ADDR_WINDOWS:
+ lnum = 0;
+ for (wp = firstwin; wp != NULL; wp = wp->w_next)
+ {
+ lnum++;
+ if (wp == curwin)
+ break;
+ }
+ ea.line2 = lnum;
+ break;
+ case ADDR_ARGUMENTS:
+ ea.line2 = curwin->w_arg_idx + 1;
+ break;
+ case ADDR_LOADED_BUFFERS:
+ case ADDR_UNLOADED_BUFFERS:
+ ea.line2 = curbuf->b_fnum;
+ break;
+ case ADDR_TABS:
+ lnum = 0;
+ for(tp = first_tabpage; tp != NULL; tp = tp->tp_next)
+ {
+ lnum++;
+ if (tp == curtab)
+ break;
+ }
+ ea.line2 = lnum;
+ break;
+ }
ea.cmd = skipwhite(ea.cmd);
- lnum = get_address(&ea.cmd, ea.skip, ea.addr_count == 0);
+ lnum = get_address(&ea.cmd, ea.addr_type, ea.skip, ea.addr_count == 0);
if (ea.cmd == NULL) /* error detected */
goto doend;
if (lnum == MAXLNUM)
@@ -2033,8 +2120,24 @@ do_one_cmd(cmdlinep, sourcing,
if (*ea.cmd == '%') /* '%' - all lines */
{
++ea.cmd;
- ea.line1 = 1;
- ea.line2 = curbuf->b_ml.ml_line_count;
+ switch (ea.addr_type)
+ {
+ case ADDR_LINES:
+ ea.line1 = 1;
+ ea.line2 = curbuf->b_ml.ml_line_count;
+ break;
+ case ADDR_WINDOWS:
+ case ADDR_LOADED_BUFFERS:
+ case ADDR_UNLOADED_BUFFERS:
+ case ADDR_TABS:
+ errormsg = (char_u *)_(e_invrange);
+ goto doend;
+ break;
+ case ADDR_ARGUMENTS:
+ ea.line1 = 1;
+ ea.line2 = ARGCOUNT;
+ break;
+ }
++ea.addr_count;
}
/* '*' - visual area */
@@ -2042,6 +2145,12 @@ do_one_cmd(cmdlinep, sourcing,
{
pos_T *fp;
+ if (ea.addr_type != ADDR_LINES)
+ {
+ errormsg = (char_u *)_(e_invrange);
+ goto doend;
+ }
+
++ea.cmd;
if (!ea.skip)
{
@@ -2084,7 +2193,7 @@ do_one_cmd(cmdlinep, sourcing,
check_cursor_lnum();
/*
- * 4. parse command
+ * 5. Parse the command.
*/
/*
@@ -2098,8 +2207,8 @@ do_one_cmd(cmdlinep, sourcing,
* If we got a line, but no command, then go to the line.
* If we find a '|' or '\n' we set ea.nextcmd.
*/
- if (*ea.cmd == NUL || *ea.cmd == '"' ||
- (ea.nextcmd = check_nextcmd(ea.cmd)) != NULL)
+ if (*ea.cmd == NUL || *ea.cmd == '"'
+ || (ea.nextcmd = check_nextcmd(ea.cmd)) != NULL)
{
/*
* strange vi behaviour:
@@ -2145,9 +2254,6 @@ do_one_cmd(cmdlinep, sourcing,
goto doend;
}
- /* Find the command and let "p" point to after it. */
- p = find_command(&ea, NULL);
-
#ifdef FEAT_AUTOCMD
/* If this looks like an undefined user command and there are CmdUndefined
* autocommands defined, trigger the matching autocommands. */
@@ -2229,7 +2335,7 @@ do_one_cmd(cmdlinep, sourcing,
ea.forceit = FALSE;
/*
- * 5. parse arguments
+ * 5. Parse arguments.
*/
if (!IS_USER_CMDIDX(ea.cmdidx))
ea.argt = (long)cmdnames[(int)ea.cmdidx].cmd_argt;
@@ -2676,7 +2782,7 @@ do_one_cmd(cmdlinep, sourcing,
#endif
/*
- * 6. switch on command name
+ * 6. Switch on command name.
*
* The "ea" structure holds the arguments that can be used.
*/
@@ -4082,8 +4188,9 @@ skip_range(cmd, ctx)
* Return MAXLNUM when no Ex address was found.
*/
static linenr_T
-get_address(ptr, skip, to_other_file)
+get_address(ptr, addr_type, skip, to_other_file)
char_u **ptr;
+ int addr_type; /* flag: one of ADDR_LINES, ... */
int skip; /* only skip the address, don't use it */
int to_other_file; /* flag: may jump to other file */
{
@@ -4094,6 +4201,8 @@ get_address(ptr, skip, to_other_file)
pos_T pos;
pos_T *fp;
linenr_T lnum;
+ win_T *wp;
+ tabpage_T *tp;
cmd = skipwhite(*ptr);
lnum = MAXLNUM;
@@ -4102,137 +4211,204 @@ get_address(ptr, skip, to_other_file)
switch (*cmd)
{
case '.': /* '.' - Cursor position */
- ++cmd;
+ ++cmd;
+ switch (addr_type)
+ {
+ case ADDR_LINES:
lnum = curwin->w_cursor.lnum;
break;
+ case ADDR_WINDOWS:
+ lnum = 0;
+ for (wp = firstwin; wp != NULL; wp = wp->w_next)
+ {
+ lnum++;
+ if (wp == curwin)
+ break;
+ }
+ break;
+ case ADDR_ARGUMENTS:
+ lnum = curwin->w_arg_idx + 1;
+ break;
+ case ADDR_LOADED_BUFFERS:
+ case ADDR_UNLOADED_BUFFERS:
+ lnum = curbuf->b_fnum;
+ break;
+ case ADDR_TABS:
+ lnum = 0;
+ for(tp = first_tabpage; tp != NULL; tp = tp->tp_next)
+ {
+ lnum++;
+ if (tp == curtab)
+ break;
+ }
+ break;
+ }
+ break;
case '$': /* '$' - last line */
- ++cmd;
+ ++cmd;
+ switch (addr_type)
+ {
+ case ADDR_LINES:
lnum = curbuf->b_ml.ml_line_count;
break;
+ case ADDR_WINDOWS:
+ lnum = 0;
+ for (wp = firstwin; wp != NULL; wp = wp->w_next)
+ lnum++;
+ break;
+ case ADDR_ARGUMENTS:
+ lnum = ARGCOUNT;
+ break;
+ case ADDR_LOADED_BUFFERS:
+ case ADDR_UNLOADED_BUFFERS:
+ lnum = lastbuf->b_fnum;
+ break;
+ case ADDR_TABS:
+ lnum = 0;
+ for(tp = first_tabpage; tp != NULL; tp = tp->tp_next)
+ lnum++;
+ break;
+ }
+ break;
case '\'': /* ''' - mark */
- if (*++cmd == NUL)
+ if (*++cmd == NUL)
+ {
+ cmd = NULL;
+ goto error;
+ }
+ if (addr_type != ADDR_LINES)
+ {
+ EMSG(_(e_invaddr));
+ goto error;
+ }
+ if (skip)
+ ++cmd;
+ else
+ {
+ /* Only accept a mark in another file when it is
+ * used by itself: ":'M". */
+ fp = getmark(*cmd, to_other_file && cmd[1] == NUL);
+ ++cmd;
+ if (fp == (pos_T *)-1)
+ /* Jumped to another file. */
+ lnum = curwin->w_cursor.lnum;
+ else
+ {
+ if (check_mark(fp) == FAIL)
{
cmd = NULL;
goto error;
}
- if (skip)
- ++cmd;
- else
- {
- /* Only accept a mark in another file when it is
- * used by itself: ":'M". */
- fp = getmark(*cmd, to_other_file && cmd[1] == NUL);
- ++cmd;
- if (fp == (pos_T *)-1)
- /* Jumped to another file. */
- lnum = curwin->w_cursor.lnum;
- else
- {
- if (check_mark(fp) == FAIL)
- {
- cmd = NULL;
- goto error;
- }
- lnum = fp->lnum;
- }
- }
- break;
+ lnum = fp->lnum;
+ }
+ }
+ break;
case '/':
case '?': /* '/' or '?' - search */
- c = *cmd++;
- if (skip) /* skip "/pat/" */
- {
- cmd = skip_regexp(cmd, c, (int)p_magic, NULL);
- if (*cmd == c)
- ++cmd;
- }
- else
- {
- pos = curwin->w_cursor; /* save curwin->w_cursor */
- /*
- * When '/' or '?' follows another address, start
- * from there.
- */
- if (lnum != MAXLNUM)
- curwin->w_cursor.lnum = lnum;
- /*
- * Start a forward search at the end of the line.
- * Start a backward search at the start of the line.
- * This makes sure we never match in the current
- * line, and can match anywhere in the
- * next/previous line.
- */
- if (c == '/')
- curwin->w_cursor.col = MAXCOL;
- else
- curwin->w_cursor.col = 0;
- searchcmdlen = 0;
- if (!do_search(NULL, c, cmd, 1L,
- SEARCH_HIS | SEARCH_MSG, NULL))
- {
- curwin->w_cursor = pos;
- cmd = NULL;
- goto error;
- }
- lnum = curwin->w_cursor.lnum;
- curwin->w_cursor = pos;
- /* adjust command string pointer */
- cmd += searchcmdlen;
- }
- break;
+ c = *cmd++;
+ if (addr_type != ADDR_LINES)
+ {
+ EMSG(_(e_invaddr));
+ goto error;
+ }
+ if (skip) /* skip "/pat/" */
+ {
+ cmd = skip_regexp(cmd, c, (int)p_magic, NULL);
+ if (*cmd == c)
+ ++cmd;
+ }
+ else
+ {
+ pos = curwin->w_cursor; /* save curwin->w_cursor */
+ /*
+ * When '/' or '?' follows another address, start
+ * from there.
+ */
+ if (lnum != MAXLNUM)
+ curwin->w_cursor.lnum = lnum;
+ /*
+ * Start a forward search at the end of the line.
+ * Start a backward search at the start of the line.
+ * This makes sure we never match in the current
+ * line, and can match anywhere in the
+ * next/previous line.
+ */
+ if (c == '/')
+ curwin->w_cursor.col = MAXCOL;
+ else
+ curwin->w_cursor.col = 0;
+ searchcmdlen = 0;
+ if (!do_search(NULL, c, cmd, 1L,
+ SEARCH_HIS | SEARCH_MSG, NULL))
+ {
+ curwin->w_cursor = pos;
+ cmd = NULL;
+ goto error;
+ }
+ lnum = curwin->w_cursor.lnum;
+ curwin->w_cursor = pos;
+ /* adjust command string pointer */
+ cmd += searchcmdlen;
+ }
+ break;
case '\\': /* "\?", "\/" or "\&", repeat search */
- ++cmd;
- if (*cmd == '&')
- i = RE_SUBST;
- else if (*cmd == '?' || *cmd == '/')
- i = RE_SEARCH;
- else
- {
- EMSG(_(e_backslash));
- cmd = NULL;
- goto error;
- }
+ ++cmd;
+ if (addr_type != ADDR_LINES)
+ {
+ EMSG(_(e_invaddr));
+ goto error;
+ }
+ if (*cmd == '&')
+ i = RE_SUBST;
+ else if (*cmd == '?' || *cmd == '/')
+ i = RE_SEARCH;
+ else
+ {
+ EMSG(_(e_backslash));
+ cmd = NULL;
+ goto error;
+ }
- if (!skip)
- {
- /*
- * When search follows another address, start from
- * there.
- */
- if (lnum != MAXLNUM)
- pos.lnum = lnum;
- else
- pos.lnum = curwin->w_cursor.lnum;
-
- /*
- * Start the search just like for the above
- * do_search().
- */
- if (*cmd != '?')
- pos.col = MAXCOL;
- else
- pos.col = 0;
- if (searchit(curwin, curbuf, &pos,
- *cmd == '?' ? BACKWARD : FORWARD,
- (char_u *)"", 1L, SEARCH_MSG,
- i, (linenr_T)0, NULL) != FAIL)
- lnum = pos.lnum;
- else
- {
- cmd = NULL;
- goto error;
- }
- }
- ++cmd;
- break;
+ if (!skip)
+ {
+ /*
+ * When search follows another address, start from
+ * there.
+ */
+ if (lnum != MAXLNUM)
+ pos.lnum = lnum;
+ else
+ pos.lnum = curwin->w_cursor.lnum;
+
+ /*
+ * Start the search just like for the above
+ * do_search().
+ */
+ if (*cmd != '?')
+ pos.col = MAXCOL;
+ else
+ pos.col = 0;
+ if (searchit(curwin, curbuf, &pos,
+ *cmd == '?' ? BACKWARD : FORWARD,
+ (char_u *)"", 1L, SEARCH_MSG,
+ i, (linenr_T)0, NULL) != FAIL)
+ lnum = pos.lnum;
+ else
+ {
+ cmd = NULL;
+ goto error;
+ }
+ }
+ ++cmd;
+ break;
default:
- if (VIM_ISDIGIT(*cmd)) /* absolute line number */
- lnum = getdigits(&cmd);
+ if (VIM_ISDIGIT(*cmd)) /* absolute line number */
+ lnum = getdigits(&cmd);
}
for (;;)
@@ -4242,7 +4418,40 @@ get_address(ptr, skip, to_other_file)
break;
if (lnum == MAXLNUM)
- lnum = curwin->w_cursor.lnum; /* "+1" is same as ".+1" */
+ {
+ switch (addr_type)
+ {
+ case ADDR_LINES:
+ lnum = curwin->w_cursor.lnum; /* "+1" is same as ".+1" */
+ break;
+ case ADDR_WINDOWS:
+ lnum = 0;
+ for (wp = firstwin; wp != NULL; wp = wp->w_next)
+ {
+ lnum++;
+ if (wp == curwin)
+ break;
+ }
+ break;
+ case ADDR_ARGUMENTS:
+ lnum = curwin->w_arg_idx + 1;
+ break;
+ case ADDR_LOADED_BUFFERS:
+ case ADDR_UNLOADED_BUFFERS:
+ lnum = curbuf->b_fnum;
+ break;
+ case ADDR_TABS:
+ lnum = 0;
+ for(tp = first_tabpage; tp != NULL; tp = tp->tp_next)
+ {
+ lnum++;
+ if (tp == curtab)
+ break;
+ }
+ break;
+ }
+ }
+
if (VIM_ISDIGIT(*cmd))
i = '+'; /* "number" is same as "+number" */
else
@@ -4251,10 +4460,59 @@ get_address(ptr, skip, to_other_file)
n = 1;
else
n = getdigits(&cmd);
- if (i == '-')
+ if (addr_type == ADDR_LOADED_BUFFERS
+ || addr_type == ADDR_UNLOADED_BUFFERS)
+ lnum = compute_buffer_local_count(addr_type, lnum, n);
+ else if (i == '-')
lnum -= n;
else
lnum += n;
+
+ switch (addr_type)
+ {
+ case ADDR_LINES:
+ break;
+ case ADDR_ARGUMENTS:
+ if (lnum < 0)
+ lnum = 0;
+ else if (lnum >= ARGCOUNT)
+ lnum = ARGCOUNT;
+ break;
+ case ADDR_TABS:
+ if (lnum < 0)
+ {
+ lnum = 0;
+ break;
+ }
+ c = 0;
+ for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
+ c++;
+ if (lnum >= c)
+ lnum = c;
+ break;
+ case ADDR_WINDOWS:
+ if (lnum < 0)
+ {
+ lnum = 0;
+ break;
+ }
+ c = 0;
+ for (wp = firstwin; wp != NULL; wp = wp->w_next)
+ c++;
+ if (lnum > c)
+ lnum = c;
+ break;
+ case ADDR_LOADED_BUFFERS:
+ case ADDR_UNLOADED_BUFFERS:
+ if (lnum < firstbuf->b_fnum)
+ {
+ lnum = firstbuf->b_fnum;
+ break;
+ }
+ if (lnum > lastbuf->b_fnum)
+ lnum = lastbuf->b_fnum;
+ break;
+ }
}
} while (*cmd == '/' || *cmd == '?');
@@ -6556,6 +6814,10 @@ not_exiting()
ex_quit(eap)
exarg_T *eap;
{
+ win_T *wp;
+ buf_T *buf;
+ int wnr;
+
#ifdef FEAT_CMDWIN
if (cmdwin_type != 0)
{
@@ -6569,11 +6831,28 @@ ex_quit(eap)
text_locked_msg();
return;
}
+ if (eap->addr_count > 0)
+ {
+ wnr = eap->line2;
+ for (wp = firstwin; --wnr > 0; )
+ {
+ if (wp->w_next == NULL)
+ break;
+ else
+ wp = wp->w_next;
+ }
+ buf = wp->w_buffer;
+ }
+ else
+ {
+ wp = curwin;
+ buf = curbuf;
+ }
#ifdef FEAT_AUTOCMD
apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
/* Refuse to quit when locked or when the buffer in the last window is
* being closed (can only happen in autocommands). */
- if (curbuf_locked() || (curbuf->b_nwindows == 1 && curbuf->b_closing))
+ if (curbuf_locked() || (buf->b_nwindows == 1 && buf->b_closing))
return;
#endif
@@ -6606,7 +6885,7 @@ ex_quit(eap)
need_mouse_correct = TRUE;
# endif
/* close window; may free buffer */
- win_close(curwin, !P_HID(curwin->w_buffer) || eap->forceit);
+ win_close(wp, !P_HID(wp->w_buffer) || eap->forceit);
#endif
}
}
@@ -6668,6 +6947,8 @@ ex_quit_all(eap)
ex_close(eap)
exarg_T *eap;
{
+ win_T *win;
+ int winnr = 0;
# ifdef FEAT_CMDWIN
if (cmdwin_type != 0)
cmdwin_result = Ctrl_C;
@@ -6678,7 +6959,21 @@ ex_close(eap)
&& !curbuf_locked()
#endif
)
- ex_win_close(eap->forceit, curwin, NULL);
+ {
+ if (eap->addr_count == 0)
+ ex_win_close(eap->forceit, curwin, NULL);
+ else {
+ for (win = firstwin; win != NULL; win = win->w_next)
+ {
+ winnr++;
+ if (winnr == eap->line2)
+ break;
+ }
+ if (win == NULL)
+ win = lastwin;
+ ex_win_close(eap->forceit, win, NULL);
+ }
+ }
}
# ifdef FEAT_QUICKFIX
@@ -6804,6 +7099,8 @@ ex_tabonly(eap)
MSG(_("Already only one tab page"));
else
{
+ if (eap->addr_count > 0)
+ goto_tabpage(eap->line2);
/* Repeat this up to a 1000 times, because autocommands may mess
* up the lists. */
for (done = 0; done < 1000; ++done)
@@ -6882,9 +7179,23 @@ tabpage_close_other(tp, forceit)
ex_only(eap)
exarg_T *eap;
{
+ win_T *wp;
+ int wnr;
# ifdef FEAT_GUI
need_mouse_correct = TRUE;
# endif
+ if (eap->addr_count > 0)
+ {
+ wnr = eap->line2;
+ for (wp = firstwin; --wnr > 0; )
+ {
+ if (wp->w_next == NULL)
+ break;
+ else
+ wp = wp->w_next;
+ }
+ win_goto(wp);
+ }
close_others(TRUE, eap->forceit);
}
@@ -6906,6 +7217,9 @@ ex_all(eap)
ex_hide(eap)
exarg_T *eap;
{
+ win_T *win;
+ int winnr = 0;
+
if (*eap->arg != NUL && check_nextcmd(eap->arg) == NULL)
eap->errmsg = e_invarg;
else
@@ -6918,7 +7232,19 @@ ex_hide(eap)
# ifdef FEAT_GUI
need_mouse_correct = TRUE;
# endif
- win_close(curwin, FALSE); /* don't free buffer */
+ if (eap->addr_count == 0)
+ win_close(curwin, FALSE); /* don't free buffer */
+ else {
+ for (win = firstwin; win != NULL; win = win->w_next)
+ {
+ winnr++;
+ if (winnr == eap->line2)
+ break;
+ }
+ if (win == NULL)
+ win = lastwin;
+ win_close(win, FALSE);
+ }
}
#endif
}
@@ -8652,7 +8978,7 @@ ex_copymove(eap)
{
long n;
- n = get_address(&eap->arg, FALSE, FALSE);
+ n = get_address(&eap->arg, eap->addr_type, FALSE, FALSE);
if (eap->arg == NULL) /* error detected */
{
eap->nextcmd = NULL;
diff --git a/src/testdir/Make_amiga.mak b/src/testdir/Make_amiga.mak
index 58316fc7f..a2e5db3b8 100644
--- a/src/testdir/Make_amiga.mak
+++ b/src/testdir/Make_amiga.mak
@@ -36,9 +36,11 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
test94.out test95.out test96.out test97.out test98.out \
test99.out test100.out test101.out test102.out test103.out \
test104.out test105.out test106.out test107.out \
+ test_argument_count.out \
test_autoformat_join.out \
test_breakindent.out \
test_changelist.out \
+ test_close_count.out \
test_eval.out \
test_insertcount.out \
test_listlbr.out \
@@ -171,9 +173,11 @@ test104.out: test104.in
test105.out: test105.in
test106.out: test106.in
test107.out: test107.in
+test_argument_count.out: test_argument_count.in
test_autoformat_join.out: test_autoformat_join.in
test_breakindent.out: test_breakindent.in
test_changelist.out: test_changelist.in
+test_close_count.out: test_close_count.in
test_eval.out: test_eval.in
test_insertcount.out: test_insertcount.in
test_listlbr.out: test_listlbr.in
diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak
index 7fd276360..d2e070ba0 100644
--- a/src/testdir/Make_dos.mak
+++ b/src/testdir/Make_dos.mak
@@ -35,9 +35,11 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
test94.out test95.out test96.out test98.out test99.out \
test100.out test101.out test102.out test103.out test104.out \
test105.out test106.out test107.out\
+ test_argument_count.out \
test_autoformat_join.out \
test_breakindent.out \
test_changelist.out \
+ test_close_count.out \
test_eval.out \
test_insertcount.out \
test_listlbr.out \
diff --git a/src/testdir/Make_ming.mak b/src/testdir/Make_ming.mak
index d2995a50b..4a99cb915 100644
--- a/src/testdir/Make_ming.mak
+++ b/src/testdir/Make_ming.mak
@@ -57,9 +57,11 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
test94.out test95.out test96.out test98.out test99.out \
test100.out test101.out test102.out test103.out test104.out \
test105.out test106.out test107.out \
+ test_argument_count.out \
test_autoformat_join.out \
test_breakindent.out \
test_changelist.out \
+ test_close_count.out \
test_eval.out \
test_insertcount.out \
test_listlbr.out \
diff --git a/src/testdir/Make_os2.mak b/src/testdir/Make_os2.mak
index 3b6b4071d..7a2571b49 100644
--- a/src/testdir/Make_os2.mak
+++ b/src/testdir/Make_os2.mak
@@ -37,9 +37,11 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
test94.out test95.out test96.out test98.out test99.out \
test100.out test101.out test102.out test103.out test104.out \
test105.out test106.out test107.out \
+ test_argument_count.out \
test_autoformat_join.out \
test_breakindent.out \
test_changelist.out \
+ test_close_count.out \
test_eval.out \
test_insertcount.out \
test_listlbr.out \
diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms
index e105376ba..93aa87401 100644
--- a/src/testdir/Make_vms.mms
+++ b/src/testdir/Make_vms.mms
@@ -4,7 +4,7 @@
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
-# Last change: 2014 Aug 16
+# Last change: 2014 Nov 27
#
# This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
# Edit the lines in the Configuration section below to select.
@@ -45,7 +45,7 @@
# It fails because VMS does not support this feature yet.
# WANT_MZSCH = YES
-# Comment out if you have ODS-5 file system
+# Comment out if you have ODS-5 file system
# HAVE_ODS5 = YES
# Comment out if you have gzip on your system
@@ -54,10 +54,10 @@
# Comment out if you have GNU compatible diff on your system
# HAVE_GDIFF = YES
-# Comment out if you have GNU compatible cksum on your system
+# Comment out if you have GNU compatible cksum on your system
# HAVE_CKSUM = YES
-# Comment out if you have ICONV support
+# Comment out if you have ICONV support
# HAVE_ICONV = YES
# Comment out if you have LUA support
@@ -96,9 +96,11 @@ SCRIPT = test1.out test2.out test3.out test4.out test5.out \
test95.out test96.out test98.out test99.out \
test100.out test101.out test103.out test104.out \
test105.out test106.out test107.out \
+ test_argument_count.out \
test_autoformat_join.out \
test_breakindent.out \
test_changelist.out \
+ test_close_count.out \
test_eval.out \
test_insertcount.out \
test_listlbr.out \
diff --git a/src/testdir/Makefile b/src/testdir/Makefile
index 1f5095e55..aa0ef1ff1 100644
--- a/src/testdir/Makefile
+++ b/src/testdir/Makefile
@@ -33,9 +33,11 @@ SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
test94.out test95.out test96.out test97.out test98.out \
test99.out test100.out test101.out test102.out test103.out \
test104.out test105.out test106.out test107.out \
+ test_argument_count.out \
test_autoformat_join.out \
test_breakindent.out \
test_changelist.out \
+ test_close_count.out \
test_eval.out \
test_insertcount.out \
test_listlbr.out \
diff --git a/src/version.c b/src/version.c
index 2496defc2..d94dc3ca8 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 530,
+/**/
529,
/**/
528,
diff --git a/src/window.c b/src/window.c
index 6490fd386..92fcbbe71 100644
--- a/src/window.c
+++ b/src/window.c
@@ -199,14 +199,22 @@ newwindow:
case Ctrl_Q:
case 'q':
reset_VIsual_and_resel(); /* stop Visual mode */
- do_cmdline_cmd((char_u *)"quit");
+ STRCPY(cbuf, "quit");
+ if (Prenum)
+ vim_snprintf((char *)cbuf + 4, sizeof(cbuf) - 5,
+ "%ld", Prenum);
+ do_cmdline_cmd(cbuf);
break;
/* close current window */
case Ctrl_C:
case 'c':
reset_VIsual_and_resel(); /* stop Visual mode */
- do_cmdline_cmd((char_u *)"close");
+ STRCPY(cbuf, "close");
+ if (Prenum)
+ vim_snprintf((char *)cbuf + 5, sizeof(cbuf) - 5,
+ "%ld", Prenum);
+ do_cmdline_cmd(cbuf);
break;
#if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
@@ -235,7 +243,11 @@ newwindow:
case 'o':
CHECK_CMDWIN
reset_VIsual_and_resel(); /* stop Visual mode */
- do_cmdline_cmd((char_u *)"only");
+ STRCPY(cbuf, "only");
+ if (Prenum > 0)
+ vim_snprintf((char *)cbuf + 4, sizeof(cbuf) - 4,
+ "%ld", Prenum);
+ do_cmdline_cmd(cbuf);
break;
/* cursor to next window with wrap around */