alterar o significado de "parágrafo" para a entrada TeX?


8

Estou escrevendo código LaTeX que tem várias seções como esta

\begin{definition}
blah blah blah ...
...
\end{definition}    

Em texto normal, gosto muito de gq]reorganizar tudo bem. Dentro de uma seção de blocos como a acima, que também envolve o comando final, que eu prefiro manter em uma linha separada.

Existe uma maneira de dizer ao vim que uma linha inicial \endtermina um parágrafo? Ou existe outro comando de formatação que eu possa usar ( mapeei <F8>para gq], não me importo de redefini-lo?

Respostas:


6

Uma maneira de fazer isso emprega o objeto de texto personalizado ie( dentro do ambiente ), disponível em vários locais: por exemplo, no plugin vimtex , ou com vim-textobj-latex (e existem outros). Com essa funcionalidade, o comando rewrap se torna:

gqie

ou

gwie

(para manter a posição do cursor).

Se você deseja reformatar o texto apenas da posição atual (vejo que esse é o seu caso de uso) até o final do parágrafo, provavelmente você pode se contentar com a seguinte construção (sem necessidade de plug-ins):

gq/\(^\s*$\|\\end\)

Isso formatará uma linha vazia ou uma linha que contenha a \endpalavra - chave, o que ocorrer primeiro. Então você pode usar este mapeamento:

:nnoremap <F8> gq/\(\\end\\|^\s*$\)<CR>

gqiefaz o que eu quero quando dentro de um bloco begin ... end, no corpo do texto principal, ele tenta agrupar tudo até \ end {document} - existe uma maneira de fazer com que ele pare na próxima linha em branco?
Bristol

Bem, fora de um ambiente - talvez o padrão gqap?
VanLaser

Veja a resposta atualizada, para um possível F8remapeamento.
039

Eu presumo eu tenho um erro de digitação em algum lugar como o seguinte não funciona: :map <F8> gq/\(^$\|^[%]$\|^\\end\)<CR>. Alguém pode me dizer o que estou fazendo de errado? Estou tentando combinar uma linha completamente vazia ( ^$), uma linha com apenas um caractere de comentário% ( ^[%]$) ou uma linha inicial \end( ^\\end).
Bristol

Eu acho que você deve usar \\|como separador em vez de \|no mapeamento.
039
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.