Aller au dernier caractère non blanc de la ligne précédente / suivante?

10

J'aime les touches -et <C-M>le mode normal pour accéder au premier caractère non blanc de la ligne précédente / suivante.

Existe-t-il des clés correspondantes pour accéder au dernier caractère non blanc sur la ligne précédente / suivante?

ivan
la source

Réponses:

13

g_déplace le curseur sur le dernier caractère non vide de la ligne actuelle . De Vim's :help g_:

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

Malheureusement, je pense que les seules options dont vous disposez pour passer au caractère non vide de la ligne précédente / suivante sont kg_ou jg_respectivement ou utiliser un décompte pour se déplacer vers le bas.

Cependant, il est facile de les mapper à quelque chose de plus simple:

nnoremap <F3> kg_
nnoremap <F4> jg_
akshay
la source
1
Notez également que 2g_cela fonctionnera également si vous souhaitez accéder au dernier caractère non blanc sur la ligne suivante. Cependant, cela ne peut pas être utilisé pour la ligne précédente. L'avantage 2g_est qu'il peut être répété avec.
EvergreenTree
1
Les mouvements (comme g_) ne sont pas reproductibles avec .. Généralement, seules les choses qui changent l'état du tampon peuvent être répétées.
tommcdo
Cependant, lorsqu'il est combiné avec un opérateur, la répétition fonctionne. C'est peut-être de cela que vous
parliez
Ah, je ne savais pas que les motions n'étaient pas reproductibles. Je devrais regarder les documents avant de dire des choses.
EvergreenTree
0

Si vous voulez dire le caractère non blanc suivant des lignes précédentes / suivantes (en allant verticalement), essayez alors:

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