Por que você espera que o editor sempre escolha o recuo correto? Ao configurar uma determinada configuração de recuo (como o bom e universal :set smartindent
), você obtém algo que funciona na maior parte do tempo. Para esses outros casos, você pode sempre recuar manualmente (com <Tab>
, supondo que você tenha sido :set tabstop=... expandtab
etc.), ou alterar o recuo após o fato com >>
e <<
.
Se você realmente tiver uma sintaxe específica em que as regras de recuo sejam bastante simples e determinísticas (e nenhuma das configurações de recuo padrão funcione o tempo todo), será necessário escrever um indentexpr
(cp. :help indent-expression
) personalizado.
Como seu exemplo é sobre formatação de texto, isso não se aplica, e você é realmente melhor com 'smartindent'
e correções manuais.