patch 9.1.1391: Vim does not have a vertical tabpanel

Problem:  Vim does not have a tabpanel
Solution: include the tabpanel feature
          (Naruhiko Nishino, thinca)

closes: #17263

Co-authored-by: thinca <thinca@gmail.com>
Signed-off-by: Naruhiko Nishino <naru123456789@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Naruhiko Nishino
2025-05-14 21:20:28 +02:00
committed by Christian Brabandt
parent 7200eae212
commit be5bd4d629
100 changed files with 2314 additions and 164 deletions

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 9.1. Last change: 2025 May 10
*options.txt* For Vim version 9.1. Last change: 2025 May 14
VIM REFERENCE MANUAL by Bram Moolenaar
@ -3657,11 +3657,12 @@ A jump table for the options with a short description can be found at |Q_op|.
trunc '>' truncated text in the
|ins-completion-menu|.
truncrl '<' same as "trunc" in 'rightleft' mode
tpl_vert '|' vertical separators of 'tabpanel'
Any one that is omitted will fall back to the default.
Example: >
:set fillchars=stl:\ ,stlnc:\ ,vert:\|,fold:-,diff:-
:set fillchars=stl:\ ,stlnc:\ ,vert:\|,fold:-,diff:-,tpl_vert:\|
<
All items support single-byte and multibyte characters. But
double-width characters are not supported. |E1512|
@ -7689,6 +7690,20 @@ A jump table for the options with a short description can be found at |Q_op|.
line.
See |tab-page| for more information about tab pages.
*'showtabpanel'* *'stpl'*
'showtabpanel' 'stpl' number (default 0)
global
{not in Vi}
{not available when compiled without the |+tabpanel|
feature}
The value of this option specifies when the |tabpanel| with tab page
labels will be displayed:
0: never
1: only if there are at least two tab pages
2: always
This is for the non-GUI implementation of the tabpanel only.
See |tab-page| for more information about tab page labels.
*'sidescroll'* *'ss'*
'sidescroll' 'ss' number (default 0)
global
@ -8408,6 +8423,71 @@ A jump table for the options with a short description can be found at |Q_op|.
Maximum number of tab pages to be opened by the |-p| command line
argument or the ":tab all" command. |tabpage|
*'tabpanel'* *'tpl'* *g:actual_curtabpage*
'tabpanel' 'tpl' string (default empty)
global
{not in Vi}
When non empty, this option determines the content of the |tabpanel|.
The option consists of printf style '%' items interspersed with
normal text, similar to the 'statusline' or 'tabline'.
When changing something that is used in 'tabpanel' that does not
trigger it to be updated, use |:redrawtabpanel|.
This option cannot be set in a modeline when 'modelineexpr' is off.
You can use |g:actual_curtabpage| within a function assigned to
tabpanel. |g:actual_curtabpage| represents current tab's label number.
This option can contain line breaks:
>
set tabpanel=%!TabPanel()
function! TabPanel() abort
return printf("(%2d)\n %%f", g:actual_curtabpage)
endfunction
<
The result is:
>
+-----------+---------------------------------
|(1) |
| ~/aaa.txt|
|(2) |
| ~/.vimrc |
| |
| |
| |
<
*'tabpanelopt'* *'tplo'*
'tabpanelopt' 'tplo' string (default "")
global
{not in Vi}
Optional settings for the |tabpanel|, It can consist of the following
items. Items must be separated by a comma.
align:{text} Specified the position of tabpanel.
Currently supported positions are:
left left-aligned
right right-aligned
(default "left")
columns:{n} Use the size (in char) of tabpanel.
The tabpanel is never shown when using zero
or less than the size of Vim window.
(default 20)
vert Use a vertical separator for tabpanel.
This vertical separator is used "tpl_vert" of
'fillchars'.
(default off)
Examples: >
:set tabpanelopt=columns:16,align:right
:set tabpanelopt=
:set tabpanelopt=vert,align:right
:set tabpanelopt=columns:16
<
*'tabstop'* *'ts'*
'tabstop' 'ts' number (default 8)
local to buffer