Existe um comando para dividir linhas no Vim?

8

No Vim, a tecla J une duas linhas juntas. Existe uma combinação de teclas incorporada semelhante para dividir as linhas com uma nova linha (na posição do cursor ou similar)?

Como alternativa, qual seria a maneira mais robusta de definir uma combinação de teclas para fazer isso (no modo normal, não no modo de inserção)?

    
por Andrew Ferrier 24.06.2013 / 17:12

4 respostas

7

Não, não há comando interno para isso.

Quando quero dividir em um <Space> , eu faço r<CR> .

--- EDIT ---

O comentário de @ keith-nicholas me lembrou sobre essa questão. FWIW: Eu esperei um método "universal" no meio tempo:

function! BreakHere()
    s/^\(\s*\)\(.\{-}\)\(\s*\)\(\%#\)\(\s*\)\(.*\)/\r
    call histdel("/", -1)
endfunction

nnoremap <key> :<C-u>call BreakHere()<CR>
    
por 24.06.2013 / 17:23
3

a Entre Esc para dividir à direita do cursor, ou i Enter Esc para dividir à esquerda.

    
por 24.06.2013 / 17:17
1

Você pode definir seu próprio mapa. Para definir z como o comando por exemplo:

:map z i<CTRL+m>
    
por 24.06.2013 / 17:23
1

A maneira mais fácil que encontrei para dividir linhas no Vim é o comando do modo normal gq (digite as duas letras em sucessão rápida no modo normal ou visual):

  • No modo visual, ele dividirá o que estiver selecionado.
  • No modo normal, você segue gq com um movimento.

Por exemplo, gql dividirá uma linha com a largura definida atualmente. Para definir a largura das linhas de divisão para ser diferente da sua configuração atual, você pode usar

:set textwidth=<n>

Onde n = número de caracteres que você quer em uma linha, por exemplo, 10, e volta para a sua largura normal quando terminar.

Obtive esta informação de um vídeo do Youtube por Kholidfu que mostra como juntar e dividir linhas no modo normal usando um movimento: Vim Tutorial - Junte-se e divida as linhas .

    
por 13.06.2017 / 16:12

Tags