Отступы для маркированных списков в виде простого текста в 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

или сколько угодно символов в строке.

Другие вопросы по тегам