listas com marcadores para documentos em texto simples no Vim

8

Enquanto o Vim suporta recuo automático em listas, a configuração padrão cobre apenas listas ordenadas, começando com dígitos, como:

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.

Não consegui descobrir como estendê-lo a listas com marcadores não ordenadas, como:

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

A alteração do formatlistpat RegEx não levou aos resultados desejados (na verdade, até quebrou as listas ordenadas).

    
por AnC 22.01.2010 / 08:32

4 respostas

10

Saber o que você tentou definir o valor ajudaria, mas acredito que você não tenha escapado das barras invertidas.

O valor padrão é

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

mas para realmente definir esse valor (no seu vimrc ou no cmdline) você tem que usar

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

Isso é explicado em :help option-backslash . Uma modificação simples para permitir que formatlistpat trabalhe com listas não ordenadas e delimitadas por * seria

set formatlistpat=^\s*[0-9*]\+[\]:.)}\t\ ]\s*
    
por 22.01.2010 / 16:48
3

Além do que o jamessan escreveu (em particular a sugestão de formatlistpat de trabalhar com * listas), é importante ter a opção 'c' (formatação de comentário) não definida em formatoptions :

set formatoptions-=c

caso contrário, o Vim fica confuso entre a formatação de * listas com marcadores e a formatação de comentários. Você acaba com um extra * nas linhas 2 e seguintes.

    
por 28.01.2011 / 12:58
1

Eu tive alguns problemas para obter listas como a) reconhecido, por isso vou postar minha solução aqui:

" 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\+
    
por 05.05.2010 / 12:55
1

Estou escrevendo uma nova resposta para essa pergunta porque tive que combinar várias respostas dessa questão e esta outra pergunta para fazer este trabalho. Aqui está minha configuração final.

set formatlistpat=^\s*[0-9*]\+[\]:.)}\t\ ]\s*
set formatoptions-=c
set comments-=mb:*
    
por 26.06.2015 / 22:59

Tags