Я как раз смотрел этот пост, в котором описывается, как обернуть целые слова в vim. Принятое решение было таким:
:set formatoptions=l
:set lbr
Что принимает этот текст (вкладки показаны как \ t):
*Inside of window *Outside of window
|---------------------------------------|
|\t\tthis is a like of text that will wr|ap here
|\t\tcan you see the wrap |
| |
|---------------------------------------|
Это выполняет подобное поведение (вкладки показаны как \ t):
*Inside of window *Outside of window
|---------------------------------------|
|\t\tthis is a like of text that will |
|wrap here |
|\t\tcan you see the wrap |
| |
|---------------------------------------|
Однако я бы хотел переопределить эту функцию. Я бы хотел, чтобы перед строкой в оболочке было такое же количество вкладок, что и в строке выше плюс один. Т.е.:
*Inside of window *Outside of window
|---------------------------------------|
|\t\tthis is a like of text that will |
|\t\t\twrap here |
|\t\tcan you see the wrap |
| |
|---------------------------------------|
Любые идеи?
Ответы:
У пластыря есть то, что вы ищете. Я успешно применил его, используя инструкции, найденные в этой теме:
Исправьте Vim с помощью патча breakindent для OS X с помощью Homebrew
В частности, формула домашнего пивоварения Эхристоферсона.
Я знаю, что эта ветка устарела, но она популярна в Google, и я встречал ее несколько раз, пытаясь найти решение.
РЕДАКТИРОВАТЬ: этот патч теперь включен в vim как патч 7.4.338. См .: https://retracile.net/blog/2014/07/18/18.00
В Yosemite (Mac OS X) я использовал команду snowbound с hombrew:
источник
brew install macvim --with-features=huge --override-system-vim --HEAD
Это не сработало, когда вопрос был задан изначально, но с 25 июня 2014 года это будет работать. (Предполагая, что вы обновляете свой vim до версии более новой, чем эта дата)
Добавьте в свой .vimrc:
Вот и все!
-
Некоторые люди (включая меня) используют один файл .vimrc на нескольких компьютерах. В этом случае важно, чтобы эта строка была надежной (чтобы избежать раздражающих сообщений об ошибках). Это немного лучше:
Таким образом, если вы используете более раннюю версию vim, вы не получите сообщение об ошибке.
источник
if has("patch-7.4.354")
Лучшее, что вы получите, - это
showbreak
вариант, который будет помещать фиксированную строку перед каждой обернутой строкой (я используюset showbreak=...
).источник
:help 'showbreak'
, нет, нельзя -showbreak
это всего лишь строка.Я согласен с ответом, который гласит, что «разоблачение» - лучший вариант. Showbreak обычно не позволяет вам помещать непечатаемые символы (например, пробелы или табуляции) в строку showbreak, поэтому при обычном использовании он просто даст вам индикатор вдоль левого поля, т. Е. Без реального отступа. Это не очень хорошо, поскольку основная цель OP, я думаю, состоит в том, чтобы дать обернутым строкам отступ, чтобы они не загромождали область левого поля и не выглядели как собственные линии.
Итак, один из способов добавить (некрасивый) отступ с помощью showbreak - просто использовать много символов, например, ": set showbreak => --------------->". В результате получается что-то вроде этого:
Лучшей альтернативой может быть использование неразрывных пробелов (при условии, что ваш экземпляр Vim поддерживает Unicode), каждый из которых можно ввести в строку showbreak, используя последовательность клавиш ctrl-v, 160. Таким образом, вы можете ввести пустую строку showbreak с левой стороны, которая будет выглядеть как настоящий отступ. Например, ": set showbreak =......... >>" где каждый '.' в команде на самом деле является неразрывный пробел, вводимый нажатием ctrl-V, 160. Таким образом, вы получите обертку с красивым отступом, например:
У вас по-прежнему нет возможности изменять уровень отступа в соответствии с отступом предыдущей строки, но, по крайней мере, вы получаете чистый отступ обернутых строк без большого визуального беспорядка вдоль левого края окна. По-прежнему может возникнуть путаница, если отступ обернутой строки меньше, чем отступ начала фактической строки, но этого, возможно, можно было бы избежать, сделав «отступ» showbreak достаточно большим (то есть больше, чем любой отступ, обычно встречающийся в вашем коде. ), но все же достаточно мал, чтобы обеспечить достаточно места для разборчивого переноса текста. Я думаю, что для многих случаев использования отступы в 40 или 50 пробелов вполне подойдут.
источник
:set showbreak=\ \ \ \
. Однако для вкладок все еще не работает.