Эта функция была реализована 25 июня 2014 г. в виде патча 7.4.338. За этим последовало несколько исправлений, улучшающих эту функцию, последним из которых был 7.4.354, так что это именно та версия, которая вам нужна.
:help breakindent
:help breakindentopt
Выдержки из справки vim ниже:
'breakindent' 'bri' boolean (default off)
local to window
{not in Vi}
{not available when compiled without the |+linebreak|
feature}
Every wrapped line will continue visually indented (same amount of
space as the beginning of that line), thus preserving horizontal blocks
of text.
'breakindentopt' 'briopt' string (default empty)
local to window
{not in Vi}
{not available when compiled without the |+linebreak|
feature}
Settings for 'breakindent'. It can consist of the following optional
items and must be seperated by a comma:
min:{n} Minimum text width that will be kept after
applying 'breakindent', even if the resulting
text should normally be narrower. This prevents
text indented almost to the right window border
occupying lot of vertical space when broken.
shift:{n} After applying 'breakindent', wrapped line
beginning will be shift by given number of
characters. It permits dynamic French paragraph
indentation (negative) or emphasizing the line
continuation (positive).
sbr Display the 'showbreak' value before applying the
additional indent.
The default value for min is 20 and shift is 0.
Также имеет отношение к этому showbreak
параметру, это добавит к сумме вашей смены указанный вами символ (символы).
Пример конфигурации
" enable indentation
set breakindent
" ident by an additional 2 characters on wrapped lines, when line >= 40 characters, put 'showbreak' at start of line
set breakindentopt=shift:2,min:40,sbr
" append '>>' to indent
set showbreak=>>
Примечание о поведении
Если вы не укажете этот sbr
параметр, showbreak
любые символы добавляются к отступу. Удаление sbr
из приведенного выше примера приводит к эффективному отступу в 4 символа; с этим параметром, если вы просто хотите использовать showbreak
без дополнительных отступов, укажите shift:0
.
Вы также можете задать отрицательный сдвиг, который будет иметь эффект перетаскивания showbreak
символов и переноса текста обратно в любое доступное пространство отступа.
При указании min
значения смещенная величина будет сжата, если ширина терминала меньше, но showbreak
символы всегда сохраняются.