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?

ivan
fonte

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_
akshay
fonte
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>
kenorb
fonte