Отступы для маркированных списков в виде простого текста в Vim
Я часто пишу текст с таким форматом в Vim.
- talking point 1
- talking point 2 ....
continue on point 2
В идеале, я надеюсь, что Vim сможет автоматически настроить его для меня, например:
- talking point 1
- talking point 2
continue on point 2
Это возможно?
4 ответа
У меня есть это в моем.vimrc:
set comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-,fb:[+],fb:[x],fb:[-]
Если я правильно помню, добавьте эту строку в ваш.vimrc, и работа будет выполнена:
set comments +=fb:-
Для подробного объяснения попробуйте:
:help comments
Если у вас есть n
флаг установлен в formatoptions
(например, с set fo+=n
), Vim уже знает, как форматировать списки с помощью числовых маркеров. formatlistpat
(короткое имя flp
) - это регулярное выражение, которое Vim использует для сопоставления, так что вам нужно улучшить это регулярное выражение. Это должно помочь вам (но только добавляет поддержку -
Пули):
set formatlistpat=^\\s*\\(\\d\\+[\\]:.)}\\t\ ]\\|-\\)\\s*
Извините за головную боль там. дела set flp?
более четко показывает, как выглядит регулярное выражение:
formatlistpat=^\s*\(\d\+[\]:.)}\t ]-\)\s*
Для получения дополнительной информации см. Этот пост.
Смотрите также: http://www.adp-gmbh.ch/vim/formatting/indenting_bullets.html
Но также убедитесь, что smartindent/cindent также не установлены.
:set smartindent
если вам нужен vim, чтобы разорвать строку раньше, чем добавить
:set tw=30
или сколько угодно символов в строке.