маркированные списки для документов простого текста в Vim

В то время как Vim поддерживает автоматическое расположение с отступом в списках, настройка по умолчанию только покрывает заказанные списки, начиная с цифр, таких как:

1. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
   tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
2. veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
   commodo consequat.

Я не смог выяснить, как расширить это до незаказанного, маркированных списков, таких как:

* 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.

Изменение formatlistpat RegEx не привел к желаемым результатам (действительно, он даже повредил заказанные списки).

8
задан 13.03.2013, 23:08

3 ответа

Знание, к чему Вы пытались установить значение, поможет, но я предполагаю, что Вы правильно не вышли из обратных косых черт.

Значение по умолчанию

formatlistpat=^\s*\d\+[\]:.)}\t ]\s*

но на самом деле устанавливать то значение (в Вашем vimrc или в cmdline) необходимо использовать

set formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*

В этом объясняют :help option-backslash. Простая модификация для разрешения formatlistpat работать с * разграниченные, незаказанные списки были бы

set formatlistpat=^\\s*[0-9*]\\+[\\]:.)}\\t\ ]\\s*
10
ответ дан 07.12.2019, 13:54

Я испытал некоторые затруднения при получении списков как a) распознанный, таким образом, я отправлю свое решение здесь:

" Recognise lists like 1), 1., a), a., and so on
" Note that | need to be escaped AND preceeded by a literal backslash
set formatlistpat=^\\s*\\([0-9]\\+\\\|[a-z]\\)[\\].:)}]\\s\\+
1
ответ дан 07.12.2019, 13:54

В дополнение к тому, что записал jamessan (в особенности его formatlistpat предложение для работы с * списки), важно иметь 'c' опцию (форматирование комментария) сброс в formatoptions:

set formatoptions-=c

иначе Vim запутывается между форматированием * маркированные списки и форматированием комментариев. Вы заканчиваете с дополнительным * на 2-м и после строк.

3
ответ дан 07.12.2019, 13:54

Теги

Похожие вопросы