¿Ir al último carácter que no sea un espacio en blanco de la línea anterior / siguiente?

10

Me gustan las teclas -y <C-M>el modo normal para ir al primer carácter que no sea un espacio en blanco de la línea anterior / siguiente.

¿Hay teclas correspondientes para ir al último carácter que no sea un espacio en blanco en la línea anterior / siguiente?

ivan
fuente

Respuestas:

13

g_mueve el cursor al último carácter no en blanco de la línea actual . De Vim's :help g_:

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

Desafortunadamente, creo que las únicas opciones que tiene para moverse al carácter no en blanco de la línea anterior / siguiente es kg_o jg_respectivamente o usar un conteo para moverse hacia abajo.

Sin embargo, es fácil asignarlos a algo más fácil:

nnoremap <F3> kg_
nnoremap <F4> jg_
akshay
fuente
1
También tenga en cuenta que 2g_también funcionará si desea ir al último carácter que no sea un espacio en blanco en la siguiente línea. Sin embargo, esto no se puede usar para la línea anterior. La ventaja de 2g_es que se puede repetir con.
EvergreenTree
1
Los movimientos (como g_) no son repetibles con .. En general, solo se pueden repetir las cosas que cambian el estado del búfer.
tommcdo
Sin embargo, cuando se combina con un operador, la repetición funciona. Tal vez a eso te
referías
Ah, no me di cuenta de que los movimientos no eran repetibles. Debería mirar los documentos antes de decir cosas.
EvergreenTree
0

Si te refieres al siguiente carácter que no sea un espacio en blanco de las líneas anteriores / siguientes (yendo verticalmente), entonces prueba:

map <C-k> :call search('\%' . virtcol('.') . 'v\S', 'bW')<CR>
map <C-j> :call search('\%' . virtcol('.') . 'v\S', 'wW')<CR>
kenorb
fuente