Речь пойдет о том, как 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