Как добиться автоматической нумерации списков в vim?

11

Контракты и т. Д. Формальные вещи требуют нумерованных списков.

1. Some text

2. More text

 2.1. Sub-section text

и т.п.

Ключ должен устранить ручную нумерацию при вставке или удалении элемента списка. Это возможно с vim? Согласованность нумерации списков действительно трудно отследить вручную.

Одна из связанных с этим целей заключается в том, чтобы обеспечить надлежащий контроль над версиями, сделанный возможным благодаря неясному формату хранения, такому как открытый текст.

lkraav
источник
1
Если PDF приемлем, то ненумерованную разметку списка можно использовать для маркировки элементов списка, а asciidocзатем можно использовать для преобразования разметки в PDF с нумерацией строк. Но я также хотел бы знать, как использовать vim для автоматической нумерации строк текстовых файлов.
Wildcard
1
Это то, что текстовые процессоры довольно хороши в.
Ромен
@Wildcard PDF действительно приемлем, единственное, что первоначальные анонимные теги затрудняют обращение к конкретным пронумерованным элементам в документе. Но, тем не менее, ваш метод определенно лучше, чем ничего.
lkraav
Было бы приемлемо использовать некоторую форму уценки, которая затем автоматически конвертируется / не конвертируется командой ex-mode? например, префикс элементов списка верхнего уровня с - , элементов списка второго уровня с -- , и т. д. Это кажется наиболее вероятным подходом; см. мой недавний вопрос о последовательной нумерации в Ex-режиме для начала.
Подстановочный
Поскольку вариантов мало, все идет.
lkraav

Ответы:

1

У меня есть плагин, который может (Частично?) Вам помочь: lazyList (Нет автоматической нумерации списка).

В следующем примере ( _это позиция курсора) ...

1. Some text
2. More text   
 Sub-secti_on text
 Sub-section text   
 Sub-section text

... просто выполните команду, :LazyList '2.%1%. 'чтобы получить:

1. Some text
2. More text   
 2.1. Sub-secti_on text
 2.2. Sub-section text   
 2.3. Sub-section text

Чтобы удалить индексы, выполните ту же команду.

По умолчанию индексы добавляются в текущий абзац (тот же отступ или когда они окружены пустыми строками), но вы можете добавить их в визуальный выбор.

Хороший способ сделать в вашем случае:

  1. Добавить индексы
  2. Удалите индексы перед добавлением нового элемента (ов).
  3. Добавить индексы после добавления нового элемента (ов).

Это видео должно быть более явным.

Плохая вещь с плагином, это то, что он не принимает во внимание визуальный выбор с пустыми строками, я должен пересмотреть это поведение.

PS Английский не мой родной язык, поэтому, пожалуйста, извините за ошибки.

MisterOccan
источник