Pergunta

Eu quero desembrulhar texto no vim. Quando entro em linhas, recebo um espaço adicional entre as frases.

Por que é que?

Foi útil?

Solução

A formatação destrói informações. Existem muitos blocos de texto diferentes que resultarão no mesmo formato. Portanto, não há como reverter a operação sem conhecimento prévio (ou seja, desfazer).

Não formatado:

Unformatted text could start out as either all one line, or several, yet look the same when formatted.

Unformatted text could start out as either all one line, or several, 
yet look the same when formatted.

Formatado:

Unformatted text could start out as 
either all one line, or several, 
yet look the same when formatted.

Se você quiser seu parágrafo tudo em uma linha, ou se você está bem com um pouco de brincadeira manual, pode usar J Para unir as linhas novamente. Você pode usar o modo visual para aplicar o J comando para várias linhas de uma só vez, talvez combinado com ap ou ip Para selecionar um parágrafo, por exemplo vipJ. Novamente, você ainda perderá algumas informações - vários espaços nas quebras de linha antes da formatação acabará em colapso em espaços únicos. (Você pode realmente entrar sem modificar espaços usando gJ ao invés de J, mas você já os perdeu quando se formou)

Se você está incomodado com os espaços extras após frases (linhas que terminam!,?, Ou.), Desligue os spaces de junta: set nojoinspaces

Outras dicas

Tenho a sensação de que é isso que você realmente quer: GJ

A partir de :h gJ:

gJ          Join [count] lines, with a minimum of two lines.
            Don't insert or remove any spaces.  {not in Vi}

Isso é útil se você copiou algo de um terminal e o colou como um grande bloco retangular no VIM, em vez de uma única linha.

Eu costumo usar no modo visual. Coisas de Hilight, GJ.

Eu acho que a solução simples para ingressar nas linhas sem espaços entre é:

:j!

Com ! A junção não insere ou exclui nenhum espaço. Para todo o arquivo, use :%j!.

Ver: :help :join.

este é a resposta que acabou trabalhando para mim, nenhuma das opções acima funcionou no meu caso de uso.

Essencialmente, use o GJ como vários outros disseram, mas destaque todo o arquivo, então na digitação do modo de comando ggvggj.

Ainda tenho o espaço extra após a participação, se a linha em que trabalhamos não terminar com o espaço. Geralmente esse é o comportamento desejado. Exemplo

first line without space
second line

Depois de se juntar a J, vir a ser

first line without space second line

Embora em alguns casos, não desejamos aplicá -lo,

myInstance->methodA()
          ->methodB()

E queremos que a junção se tornasse myInstance->methodA()->methodB() Sem nenhum espaço no meio!

Aqui o mapeamento de ajudantes que eu uso

nmap <leader>jj Jx

u003Cleader>A chave pode ser verificada com :let mapleader, padrão para a chave \ eu acredito.

Então, no modo normal, apenas \jj Para executar o JONE sem nenhum espaço extra!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top