Atualmente, estou escrevendo muito texto sem formatação (e LaTeX com formatação mínima em parágrafos), e seria bom se eu pudesse configurar o vim para manter cada frase (por simplicidade, texto terminado com um '.', '!' , ou '?', ou seja, uma pontuação final seguida por um espaço para evitar a quebra de números decimais) em sua própria linha, para que as diferenças de VCS sejam mais úteis.
No mínimo, gostaria gq
de formatar o texto de:
He lay flat on the brown, pine-needled floor of the forest, his chin on his
folded arms, and high overhead the wind blew in the tops of the pine trees.
The mountainside sloped gently where he lay; but below it was steep and he
could see the dark of the oiled road winding through the pass. There was a
stream alongside the road and far down the pass he saw a mill beside the
stream and the falling water of the dam, white in the summer sunlight.
Para:
He lay flat on the brown, pine-needled floor of the forest, his chin on his folded arms, and high overhead the wind blew in the tops of the pine trees.
The mountainside sloped gently where he lay; but below it was steep and he could see the dark of the oiled road winding through the pass.
There was a stream alongside the road and far down the pass he saw a mill beside the stream and the falling water of the dam, white in the summer sunlight.
Mas seria bom se o vim também executasse essa formatação enquanto digito (como acontece com o reflow da largura do texto). Isso é possível?
Minha solução atual é juntar um parágrafo J
e executar o :'<,'>s/\. /.\r/g
que é muito bom, pois há poucos pontos de exclamação e interrogação, mas seria muito melhor se eu pudesse tornar o gq um pouco mais inteligente.
fonte
)
e inserir uma nova linha; repita até chegar ao final do intervalo". Presumivelmente, aplicaria qualquer regra de indentação. Mas meu Vim-fu é muito fraco para isso. :)e.g. blah
, eBlah et al. 2018
é um pouco chato. Você pode cancelar a correspondência de padrões como esse com algo parecido's/\(e\.g\|\<al\)\@<![.!?]\zs /\r/g'
. Basta adicionar mais padrões ao primeiro grupo para evitar outras coisas que você não deseja dividir. Caso contrário, isso é super útil, obrigado. Eu não havia me encontradogq
antes egqip
é super útil para formatar o texto que os editores de co-autor confundiram.Bem, você pode configurar alguns mapas e comandos automáticos:
Em seguida, basta definir o tipo de arquivo como mphxt ou chamar a
AddSentenceMaps
função manualmente.fonte
Quero adicionar meus pensamentos sobre esse problema. Geralmente, as pessoas desejam esse tipo de recurso por causa de pular linhas quebradas quando navegam pelo código com
j
ek
comandos, que é o comportamento padrão do Vim. Para a navegação através de linhas quebradas, eu usogj
- mover para baixo egk
- mover para cima. Também existe a possibilidade de remapear o padrãoj
e ok
comando nas contrapartes com prefixo g, mas IMHO seria um exagero.fonte
j
ek
paragj
egk
quando você quiser ;-)Ele não responde sua pergunta específica sobre reformatação, mas 'set wrap' junto com 'set linebreak' podem tornar a edição de linhas longas muito mais agradável. Combine isso com gj e gk para navegar dentro de linhas quebradas. Mapeio as setas para cima e para baixo para gj e gk, respectivamente, para que eu possa escolher entre mover para cima e para baixo linhas reais ou linhas visuais. Como sábio para Início / Fim para g0 / g $.
fonte