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>
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 5563a05..274d56e 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -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 @@
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 @@
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 @@
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