A gJ
combinação faz isso; de :help gJ
:
Una [contagem] de linhas, com no mínimo duas linhas. Não insira ou remova espaços.
Você pode reconectá-lo J
, se quiser salvar um pressionamento de tecla:
:nnoremap J gJ
Observe que isso não remove nenhum espaço; portanto, se a linha atual terminar com um espaço ou a próxima linha começar com um ou mais espaços, eles serão deixados como estão .
Assim:
Hello
world
Torna-se:
Hello world
Nós poderíamos usar Jx
neste caso, então será Helloworld
, mas isso não funcionará em todos os casos; da ajuda:
Junte as linhas destacadas, com no mínimo duas linhas. Remova o recuo e insira até dois espaços
[...]
Esses comandos, exceto "gJ", inserem um espaço no lugar de, a menos que exista espaço em branco à direita ou a próxima linha comece com ')'.
Portanto, em alguns casos, mais de um espaço ou nenhum espaço é inserido. Tanto quanto posso ver, não há maneira fácil de mudar esse comportamento; Eu criei uma função para modificar gJ
para sempre ingressar sem espaços:
" Like gJ, but always remove spaces
fun! JoinSpaceless()
execute 'normal gJ'
" Character under cursor is whitespace?
if matchstr(getline('.'), '\%' . col('.') . 'c.') =~ '\s'
" When remove it!
execute 'normal dw'
endif
endfun
" Map it to a key
nnoremap <Leader>J :call JoinSpaceless()<CR>
Veja também: :help J
,:help 'joinspaces'
Outro truque que você pode tentar é usar o substituir. Às vezes isso pode ser útil.
Cenário: exclua o último caractere e junte-se à próxima linha:
Por exemplo,
torna-se:
fonte
Crie uma macro e reutilize-a:
qaJxq
Agora, repita a macro,
a
usando @aonde quiser unir duas linhas sem espaço.@@repetirá a macro anterior. Então você pode apenas segurar @para juntar várias linhas.
fonte
@a
quando você pode digitarJx
? Mesmo número de pressionamentos de tecla e SHIFT!3@a
unir 3 linhas, enquanto3Jx
que o processo uniria 3 linhas com espaços e excluiria o espaço entre a segunda e a terceira linhas, deixando espaços entre as outras linhas.Para sempre se unir a um único espaço:
Para ingressar sem espaço (remove o espaço à direita + à esquerda):
fonte
Selecione as linhas que deseja mesclar, insira um comando Ex digitando dois pontos
:
no modo normal. Em seguida, digite este comando:s/$\n\s*//gc
O comando inteiro deve ter a mesma aparência:
:'<,'>s/$\n\s*//gc
Explicação:
'<,'>
significa que modificamos apenas as linhas selecionadas no modo visual./$\n\s*
é um padrão regex . Estamos procurando uma correspondência que termine$
com um novo caractere de linha\n
e que tenha um número não determinado de espaços em branco a*
partir de então.s/pattern//gc
é um comando substituto para localizar cada padrão e substituí-lo por um caractere vazio na confirmação.fonte