Evite reformatar as listas de marcadores com formatação + = a

9

Estou usando o Vim formatoptions +=acomo descrito no Vim: quebra de linha para documentos para formatar linhas automaticamente enquanto escrevo documentos, especialmente documentos Markdown.

Meu problema é que o Vim deseja reformatar também as listas de marcadores porque há uma linha em branco entre cada ponto de marcador.

O que acontece é que o vim reformata

This is wath we will do:

* task 1,
* task 2,
* task 3.

para dentro

This is wath we will do:

* task 1,   task 2,   task 3.

(Também não entendo por que os asteriscos desaparecem nesse processo de reformatação.)

Como posso fazer o Vim parar de reformatar essas listas?

gioele
fonte
Os asteriscos desaparecem porque Vim os confundiu com líderes de comentários.
Gioele

Respostas:

5

Tente o seguinte:

  • adicionar nao formatoptionsvim reconhece lists ( :set fo+=n)
  • defina a formatlistpatopção de reconhecer asterisco como marcadores ( set flp+=\\\|^\\*\\s*) (observe que o número de barras invertidas depende do seu magicnível de ness).

Não é perfeito com base nos meus testes, mas parece estar próximo.

jw013
fonte
3

A filetypeopção está definida para markdownquando você está editando seus arquivos Markdown? Você pode usar :verbose set filetype?para inspecionar o valor atual.

Quando você ter executado :filetype plugin on(por exemplo, do seu .vimrc), e filetypeestá definido para markdown, Vim será fonte $VIMRUNTIME/ftplugin/markdown.vimque irá definir algumas opções ( comments, formatlistpate formatoptions) que devem ajudar com formatação de itens da lista de remarcação para baixo.

Nota: O padrão comum de nome de arquivo Markdown *.mdé realmente mapeado para o modula2tipo de arquivo por $VIMRUNTIME/filetype.vim. Você pode substituir essa configuração se normalmente usa esse padrão de nome de arquivo para seus arquivos Markdown. Você pode fazer isso colocando isso no seu .vimrcarquivo:

autocmd! filetypedetect BufNewFile,BufRead *.md setfiletype markdown

Como alternativa, você pode adicionar uma modelagem a cada arquivo:

<!-- vim: set filetype=markdown : -->
Chris Johnsen
fonte
Os arquivos de sintaxe do tpope (o que eu estou usando) definem formatlistpath no github.com/tpope/vim-markdown/blob/master/ftplugin/markdown.vim . Por algumas razões parece que o ftplugin não está carregado ...
Gioele
1
Esse vim-markdownplugin deve ser suficiente, mas você precisa habilitar sua funcionalidade (e a de outros plugins de tipo de arquivo) com :filetype plugin on. Veja :help :filetype-plugin-on.
31720 Chris Chrissen