Como o comando J no Vim, mas faça um movimento

4

Eu gosto do comando J para participar de muitas linhas, mas não gosto de contar quantas linhas quero participar. Eu prefiro dar uma moção. Isso pode ser falsificado com V{motion}J ; Existe uma maneira que não envolva a inserção de modo visual (portanto, está corrompendo o * register)?

    
por Daniel Wagner 10.03.2015 / 23:31

2 respostas

3

Acho que não há operador de associação padrão. Mas você pode usar esse código, de um thread antigo do vim sobre o mesmo assunto :

nnoremap J :set operatorfunc=Joinoperator<CR>g@
nnoremap gJ :set operatorfunc=GJoinoperator<CR>g@
onoremap J j
func! Joinoperator(submode)
        '[,']join
endfunc
func! GJoinoperator(submode)
        '[,']join!
endfunc 

Observe que, ao usar esse snippet, não será possível usar J para participar de um par de linhas. Será necessário usar Jj (ou JJ devido ao omap J j ). / p>     

por 17.03.2015 / 12:41
3

Você pode fazer algo como:

:.,/pattern/join

Essencialmente, você está dizendo ao Vim para unir-se a um intervalo de linhas, . sendo a linha atual em que o cursor está, e a última linha sendo a primeira correspondência de pattern .

    
por 11.03.2015 / 00:26

Tags