Pull to refresh

Настройка наследования отступа для длинных строк

Reading time 2 min
Views 1.5K
Речь пойдет о том, как vim «сворачивает» (делает то, что по английски называется wrap) длинные строки. Допустим, у вас есть очень длинная строка кода, которая начинается с некоторым отступом. Скорее всего, если вы используете :set wrap и :set showbreak=->, она выглядит вот так:

Not-indented line
	Once indented line
		Twice indented line, which is long enough
->to be wrapped. 


А хотелось бы, чтобы выглядела вот так:

Not-indented line
	Once indented line
		Twice indented line, which is long enough 
		->to be wrapped. 


К сожалению, стандартными средствами Vim добиться этого невозможно, но есть патч, который позволяет с этим справиться.



Патч называется breakindent patch и может быть скачан по адресу retracile.net/wiki/VimBreakIndent. Он патчит исходники vim, из которых последний придется собирать собственными руками. Исходники берутся из www.vim.org, секция Download. Патч следует применить в директории, куда распакованы исходники, командой

patch -p1 <file.of.patch

В реализации, которую я скачал вчера, file.of.patch надо было заменять на vim-7.3.285-breakindent.patch.

Дальнейшее касается только сборки vim из исходников и не должно вызывать проблем. Если же руки у читателя растут оттуда же, откуда и у автора этих строк, и из исходников он ничего никогда не собирал, то делать надо примерно следующее.

В файле src/Makefile можно раскомментировать (удаляя # в начале строки) желаемые опции. Я бы рекомендовал собрать vim в наибольшей конфигурации, для чего надо удалить символ комментария в начале строки

CONF_OPT_FEAT = --with-features=huge

Если вам нужен графический интерфейс (я бы не рекомендовал, но на вкус и цвет), нужно добавить в строку CONF_ARGS ключ --enable-gui и раскомментировать одну из строк CONF_OPT_GUI, в зависимости от того, какой гуй вам хочется иметь, к примеру
CONF_ARGS = --exec-prefix=/usr --enable-gui
CONF_OPT_GUI = --enable-gui=gnome2


После всего этого достаточно сделать (полагаем, что у тех, кому такая инструкция полезна, есть в системе sudo)
make
sudo make install

и наслаждаться правильными отступами, отдав команду :set breakindent.

На всякий случай, информацию о сворачивании строк можно найти по адресу :h wrap; :h linebreak; :h showbreak. В прореферированном виде информацию можно искать на сайте vim.wikia.com, где очень много полезного, в частности vim.wikia.com/wiki/Word_wrap_without_line_breaks.
Tags:
Hubs:
+6
Comments 2
Comments Comments 2

Articles