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.