Ir para o último caractere sem espaço em branco da linha anterior / seguinte?


10

I como o -e <C-M>chaves de modo normal para ir para o primeiro caractere não-espaço em branco da próxima linha anterior / seguinte.

Existem chaves correspondentes para ir para o último caractere não-espaço em branco na linha anterior / próxima?

Respostas:


13

g_move o cursor para o último caractere não em branco da linha atual . De Vim :help g_:

g_          To the last non-blank character of the line and
            [count - 1] lines downward |inclusive|. {not in Vi}

Infelizmente, acho que as únicas opções que você precisa mover para o caractere não em branco da linha anterior / seguinte são kg_ou, jg_respectivamente, ou usando uma contagem para se mover para baixo.

No entanto, é fácil mapeá-los para algo mais fácil:

nnoremap <F3> kg_
nnoremap <F4> jg_

11
Observe também que 2g_também funcionará se você quiser ir para o último caractere que não é um espaço em branco na próxima linha. No entanto, isso não pode ser usado para a linha anterior. A vantagem 2g_é que ele pode ser repetido com.
— EvergreenTree

11
Os movimentos (como g_) não são repetíveis com .. Geralmente, apenas coisas que alteram o estado do buffer podem ser repetidas.
— Tommcdo 17/05/15

Porém, quando combinado com um operador, a repetição funciona. Talvez seja isso que você estava se referindo
— tommcdo

Ah, eu não sabia que os movimentos não eram repetíveis. Eu deveria olhar os documentos antes de dizer as coisas.
— EvergreenTree

0

Se você quer dizer o próximo caractere não em branco das linhas anterior / seguinte (indo na vertical), tente:

map <C-k> :call search('\%' . virtcol('.') . 'v\S', 'bW')<CR>
map <C-j> :call search('\%' . virtcol('.') . 'v\S', 'wW')<CR>
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.