-*fold.txt* For Vim version 9.1. Last change: 2025 Jul 15
+*fold.txt* For Vim version 9.1. Last change: 2025 Oct 03
VIM REFERENCE MANUAL by Bram Moolenaar
These characters can be changed with the 'fillchars' option.
Where the fold column is too narrow to display all nested folds, digits are
-shown to indicate the nesting level.
+shown to indicate the nesting level. To override this behavior you can use
+the "foldinner" character of the 'fillchars' option.
The mouse can also be used to open and close folds by clicking in the
fold column:
foldopen '-' mark the beginning of a fold
foldclose '+' show a closed fold
foldsep '|' open fold middle character
+ foldinner none character to show instead of the
+ numeric foldlevel when it would be
+ repeated in a narrow 'foldcolumn'
diff '-' deleted lines of the 'diff' option
eob '~' empty lines below the end of a buffer
lastline '@' 'display' contains lastline/truncate
-*version9.txt* For Vim version 9.1. Last change: 2025 Sep 29
+*version9.txt* For Vim version 9.1. Last change: 2025 Oct 03
VIM REFERENCE MANUAL by Bram Moolenaar
"eob" in 'fillchars'.
- Support for using multibyte items with the "stl", "stlnc", "foldopen",
"foldclose" and "foldsep" items in the 'fillchars' option.
+- Support for configuring the character used inside a fold level region using
+ "foldinner" in 'fillchars'.
Support for the XChaCha20 encryption method. 'cryptmethod'
- new option values for 'fillchars':
"trunc" - configure truncation indicator, 'pummaxwidth'
"truncrl" - like "trunc" but in 'rl' mode, 'pummaxwidth'
- "tpl_vert" - separators for the 'tabpanel'
+ "tpl_vert" - vertical separators for the 'tabpanel'
+ "foldinner" - character used inside the 'foldcolumn' for nested
+ fold levels
- 'grepformat' is now a |global-local| option.
- adjust for GTK3 dropping some mouse cursors 'mouseshape'
- 'nrformats' accepts the new "blank" suboption, to determine a signed or
symbol = wp->w_fill_chars.foldopen;
else if (first_level == 1)
symbol = wp->w_fill_chars.foldsep;
+ else if (wp->w_fill_chars.foldinner != NUL)
+ symbol = wp->w_fill_chars.foldinner;
else if (first_level + i <= 9)
symbol = '0' + first_level + i;
else
CHARSTAB_ENTRY(&fill_chars.foldopen, "foldopen"),
CHARSTAB_ENTRY(&fill_chars.foldclosed, "foldclose"),
CHARSTAB_ENTRY(&fill_chars.foldsep, "foldsep"),
+ CHARSTAB_ENTRY(&fill_chars.foldinner, "foldinner"),
CHARSTAB_ENTRY(&fill_chars.diff, "diff"),
CHARSTAB_ENTRY(&fill_chars.eob, "eob"),
CHARSTAB_ENTRY(&fill_chars.lastline, "lastline"),
fill_chars.foldopen = '-';
fill_chars.foldclosed = '+';
fill_chars.foldsep = '|';
+ fill_chars.foldinner = NUL;
fill_chars.diff = '-';
fill_chars.eob = '~';
fill_chars.lastline = '@';
int foldopen;
int foldclosed;
int foldsep;
+ int foldinner;
int diff;
int eob;
int lastline;
\ ]
call assert_equal(expected, lines)
+ " check setting foldinner
+ set fdc=1 foldmethod=indent foldlevel=10
+ call setline(1, ['one', ' two', ' two', ' three', ' three', 'four'])
+ let lines = ScreenLines([1, 6], 22)
+ let expected = [
+ \ ' one ',
+ \ '[ two ',
+ \ '- two ',
+ \ '[ three',
+ \ '2 three',
+ \ ' four ',
+ \ ]
+ call assert_equal(expected, lines)
+
+ set fillchars+=foldinner:\
+ let lines = ScreenLines([1, 6], 22)
+ let expected = [
+ \ ' one ',
+ \ '[ two ',
+ \ '- two ',
+ \ '[ three',
+ \ ' three',
+ \ ' four ',
+ \ ]
+ call assert_equal(expected, lines)
+
%bw!
set fillchars& fdc& foldmethod& foldenable&
endfunc
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1819,
/**/
1818,
/**/