Vim - Impede que a navegação entre chaves deixe marcas

Vim - Impede que a navegação entre chaves deixe marcas

Curly Ao usar a navegação entre chaves, {, }, para mover-se entre parágrafos, substitui a marca do "último salto" (aquela acessível via ''). Eu acharia mais útil se deixasse essa marca intocada. Existe alguma maneira de configurar o vim assim?

Responder1

Você pode usar o keepjumpscomando. De :h :keepjumps:

                            *:keepj* *:keepjumps*
:keepj[umps] {command}
            Moving around in {command} does not change the |''|,
            |'.| and |'^| marks, the |jumplist| or the
            |changelist|.
            Useful when making a change or inserting text
            automatically and the user doesn't want to go to this
            position.

Então, no seu caso, você gostaria

nnoremap } :keepjumps normal! }<cr>
nnoremap { :keepjumps normal! {<cr>

Ou, se você quiser que funcione também no modo visual (o que provavelmente acontece):

xnoremap } :<C-u>keepjumps normal! gv}<cr>
xnoremap { :<C-u>keepjumps normal! gv{<cr>

informação relacionada