Есть ли способ форматирования текста в Vim, который соответствует подчеркнутым заголовкам?Vim: wrap text ("gq") без изменения подчеркнутых заголовков
В Markdown, есть два способа, представляющие рубрики:
#Level 1 heading
##Level 2 heading
###Level 3 heading
и для уровня 1 & 2 только:
Level 1 heading
===============
Level 2 heading
---------------
Я люблю стиль подчеркивания, как я думаю, что он читает лучше.
Когда я сочиняю уценки в Vim, скажем, :set textwidth=72
, я хотел бы иметь возможность переформатировать весь документ с gggqG
, но он рассматривает эти подчеркнутые заголовки как параграфы, и выдавливает их вместе на одной линии. Так что если бы я начал со следующим:
Lorem ipsum
===========
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
После запуска gq
на весь проход, я бы в конечном итоге с чем-то вроде этого:
Lorem ipsum ===========
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat.
Есть ли способ, что я могу предотвратить Vim от форматирования подчеркнутые заголовки?
Я полагаю, что должно быть решение, использующее либо formatexpr
, либо formatprg
. Я изучил документацию для par, и, несмотря на то, что он очень мощный, похоже, что это не одна из его функций. Поэтому мне интересно, есть ли другая внешняя программа, которая может быть использована с formatprg
, которая понимает уценку, или если это можно сделать, используя vimscript с настройкой formatexpr
.
Это кажется хакерским, но до тех пор, пока флаг 'q' включен в настройку' formatoptions', он отлично работает. Мои строки подчеркивания обычно соответствуют длине текста в строке выше, поэтому я использовал настройку размера переменной. Спасибо за помощь. В дополнение к справочным ссылкам, указанным в ответе, я нашел это полезным: [': help 30.6'] (http://vimdoc.sourceforge.net/htmldoc/usr_30.html#30.6) – nelstrom