Vim Markdown trata o bloco de código protegido como comentário
Eu uso uma formatação de texto automática bastante bacana para Markdown:
(Visto https://asciidoc.org/userguide.html#X61)
augroup TXT | au!
autocmd FileType asciidoc,markdown
\ setlocal autoindent expandtab tabstop=8 softtabstop=2 shiftwidth=2
\ textwidth=70 wrap formatoptions=atqn
\ formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\\|^\\s*<\\d\\+>\\s\\+\\\\|^\\s*[a-zA-Z.]\\.\\s\\+\\\\|^\\s*[ivxIVX]\\+\\.\\s\\+
\ comments=s1:/*,ex:*/,://,b:#,:%,:XCOMM,fb:-,fb:*,fb:+,fb:.,fb:>
\ listchars=tab:»·,trail:·
\ list |
autocmd FileType asciidoc,markdown silent! %foldopen!
augroup END
Este auto-recua lista e mantém meus blocos de texto curtos, inserindo automaticamente quebras rígidas ou removendo-as quando apropriado.
No entanto, esse comportamento me atrapalha ao inserir o código protegido, pois o Vim tenta mesclar as linhas não separadas por um parágrafo até que a largura do texto seja atingida.
Posso desabilitar a formatação automática em código protegido? Como seria comments=tratar tudo entre
```
fenced code
```
como um comentário O Vim não deve formatar automaticamente? Veja a ausência de formatoptions=-cacima que eu suponho que Vim iria aproveitar para deixar meus comentários sozinho.
Respostas
Receio que seja "impossível" fazer isso comments. A questão é que ele não analisa se está em comentários reais ou não - na verdade, é tratado como comentários reais. Ele foi apenas sequestrado para itens de lista, pois eles são semelhantes em asciidoc e markdown ao que comentários do tipo C são:
/*****************************
* comment line 1
* comment line 2
******************************/
Portanto, se você pressionar Enter após a linha de comentário 2, ele continuará na próxima linha precedendo um "marcador".
Claro, você pode tentar implementar sua própria solução:
mapear
<CR>no modo de inserção para uma função onde você tem que analisar os arredores, como pesquisar para trás por um bloco cercado iniciar e desligarcommentsse for encontradoou faça o mesmo sem,
commentsmas com sua própria implementação de inserção de marcador.
Mas seria frágil ou lento ou ambos.