mirror of
https://github.com/neovim/neovim.git
synced 2024-12-31 17:13:26 -07:00
vim-patch:7.4.2237
Problem: Can't use "." and "$" with ":tab".
Solution: Support a range for ":tab". (Hirohito Higashi)
9b7f8ce9eb
This commit is contained in:
parent
9ca90fdb9f
commit
d7b942b54e
@ -83,14 +83,21 @@ In the GUI tab pages line you can use the right mouse button to open menu.
|
||||
Execute {cmd} and when it opens a new window open a new tab
|
||||
page instead. Doesn't work for |:diffsplit|, |:diffpatch|,
|
||||
|:execute| and |:normal|.
|
||||
When [count] is omitted the tab page appears after the current
|
||||
one.
|
||||
When [count] is specified the new tab page comes after tab
|
||||
page [count]. Use ":0tab cmd" to get the new tab page as the
|
||||
first one.
|
||||
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.
|
||||
Examples: >
|
||||
:tab split " opens current buffer in new tab page
|
||||
:tab help gt " opens tab page with help for "gt"
|
||||
:tab split " opens current buffer in new tab page
|
||||
:tab help gt " opens tab page with help for "gt"
|
||||
:.tab help gt " as above
|
||||
:+tab help " opens tab page with help after the next
|
||||
" tab page
|
||||
:-tab help " opens tab page with help before the
|
||||
" current one
|
||||
:0tab help " opens tab page with help before the
|
||||
" first one
|
||||
:$tab help " opens tab page with help after the last
|
||||
" one
|
||||
|
||||
CTRL-W gf Open a new tab page and edit the file name under the cursor.
|
||||
See |CTRL-W_gf|.
|
||||
@ -140,7 +147,7 @@ something else.
|
||||
|
||||
:{count}tabo[nly][!]
|
||||
Close all tab pages except the {count}th one. >
|
||||
:.tabonly " one
|
||||
:.tabonly " as above
|
||||
:-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
|
||||
|
@ -1302,8 +1302,7 @@ static char_u * do_one_cmd(char_u **cmdlinep,
|
||||
* 2. Handle command modifiers.
|
||||
*/
|
||||
p = ea.cmd;
|
||||
if (ascii_isdigit(*ea.cmd))
|
||||
p = skipwhite(skipdigits(ea.cmd));
|
||||
p = skip_range(ea.cmd, NULL);
|
||||
switch (*p) {
|
||||
/* When adding an entry, also modify cmd_exists(). */
|
||||
case 'a': if (!checkforcmd(&ea.cmd, "aboveleft", 3))
|
||||
@ -1406,12 +1405,18 @@ static char_u * do_one_cmd(char_u **cmdlinep,
|
||||
continue;
|
||||
|
||||
case 't': if (checkforcmd(&p, "tab", 3)) {
|
||||
if (ascii_isdigit(*ea.cmd))
|
||||
cmdmod.tab = atoi((char *)ea.cmd) + 1;
|
||||
else
|
||||
cmdmod.tab = tabpage_index(curtab) + 1;
|
||||
ea.cmd = p;
|
||||
continue;
|
||||
long tabnr = get_address(&ea, &ea.cmd, ADDR_TABS, ea.skip, false);
|
||||
if (tabnr == MAXLNUM) {
|
||||
cmdmod.tab = tabpage_index(curtab) + 1;
|
||||
} else {
|
||||
if (tabnr < 0 || tabnr > LAST_TAB_NR) {
|
||||
errormsg = (char_u *)_(e_invrange);
|
||||
goto doend;
|
||||
}
|
||||
cmdmod.tab = tabnr + 1;
|
||||
}
|
||||
ea.cmd = p;
|
||||
continue;
|
||||
}
|
||||
if (!checkforcmd(&ea.cmd, "topleft", 2))
|
||||
break;
|
||||
|
@ -186,4 +186,36 @@ function Test_tabpage_with_autocmd()
|
||||
bw!
|
||||
endfunction
|
||||
|
||||
function Test_tabpage_with_tab_modifier()
|
||||
for n in range(4)
|
||||
tabedit
|
||||
endfor
|
||||
|
||||
function s:check_tab(pre_nr, cmd, post_nr)
|
||||
exec 'tabnext ' . a:pre_nr
|
||||
exec a:cmd
|
||||
call assert_equal(a:post_nr, tabpagenr())
|
||||
call assert_equal('help', &filetype)
|
||||
helpclose
|
||||
endfunc
|
||||
|
||||
call s:check_tab(1, 'tab help', 2)
|
||||
call s:check_tab(1, '3tab help', 4)
|
||||
call s:check_tab(1, '.tab help', 2)
|
||||
call s:check_tab(1, '.+1tab help', 3)
|
||||
call s:check_tab(1, '0tab help', 1)
|
||||
call s:check_tab(2, '+tab help', 4)
|
||||
call s:check_tab(2, '+2tab help', 5)
|
||||
call s:check_tab(4, '-tab help', 4)
|
||||
call s:check_tab(4, '-2tab help', 3)
|
||||
call s:check_tab(3, '$tab help', 6)
|
||||
call assert_fails('99tab help', 'E16:')
|
||||
call assert_fails('+99tab help', 'E16:')
|
||||
call assert_fails('-99tab help', 'E16:')
|
||||
|
||||
delfunction s:check_tab
|
||||
tabonly!
|
||||
bw!
|
||||
endfunction
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
@ -204,7 +204,7 @@ static int included_patches[] = {
|
||||
// 2240,
|
||||
// 2239,
|
||||
// 2238 NA
|
||||
// 2237,
|
||||
2237,
|
||||
// 2236,
|
||||
// 2235,
|
||||
// 2234 NA
|
||||
|
Loading…
Reference in New Issue
Block a user