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

в 15:40, , рубрики: патч, метки:

Речь пойдет о том, как 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, из которых последний придется собирать собственными руками. Исходники берутся из 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

и наслаждаться правильными отступами.

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

Автор: rkh

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js