Como obter a numeração automática de lista no vim?

11

Contratos etc coisas formais precisam de listas numeradas.

1. Some text

2. More text

 2.1. Sub-section text

etc.

A chave é eliminar a renumeração manual ao inserir ou excluir um item da lista. Isso é possível com vim? A consistência da numeração das listas é realmente difícil de controlar manualmente.

Um dos objetivos associados a isso é ter o controle de revisão adequado possibilitado por um formato de armazenamento não ofuscado, como texto não criptografado.

lkraav
fonte
1
Se um PDF for aceitável, a marcação de lista não numerada pode ser usada para marcar itens da lista e asciidocposteriormente pode ser usada para converter a marcação de marcação em PDF com numeração de linha. Mas eu também gostaria de saber como usar o vim para numeração automática de linhas de arquivos somente texto.
Wildcard
1
Isso é algo em que os processadores de texto são muito bons.
Romainl # 12/15
O @Wildcard PDF é realmente aceitável, a única coisa é que a marcação anônima inicial dificulta a referência a itens numerados específicos no documento. Mas ainda assim, seu método é definitivamente melhor que nada.
lkraav
Seria aceitável usar alguma forma de remarcação que seria então convertida / não convertida automaticamente com um comando ex-mode? por exemplo, prefixar itens de lista de nível superior com - , itens de lista de segundo nível com -- etc. Isso parece ser o caminho mais provável de abordagem; veja minha pergunta recente sobre numeração consecutiva no modo Ex para um ponto de partida.
Wildcard
Como as opções são escassas, vale tudo.
lkraav

Respostas:

1

Eu tenho um plugin que pode (parcialmente?) Ajudá- lo: lazyList (sem numeração automática da lista).

No exemplo a seguir ( _é a posição do cursor) ...

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

... simplesmente execute o comando :LazyList '2.%1%. 'para obter:

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

Para remover os índices, execute o mesmo comando.

Por padrão, os índices são adicionados ao parágrafo atual (Mesmo recuo ou quando cercados por linhas vazias), mas você pode adicioná-los a uma seleção visual.

Uma boa maneira de fazer no seu caso:

  1. Adicionar índices
  2. Remova os índices antes de adicionar um novo elemento (s).
  3. Adicione índices depois de adicionar o (s) novo (s) elemento (s).

Este vídeo deve ser mais explícito.

O lado ruim do plug-in é que ele não leva em conta uma seleção visual com linhas vazias, devo reconsiderar esse comportamento.

PS O inglês não é minha língua nativa, então desculpe os erros.

MisterOccan
fonte