Eu não acredito que o Vim forneça qualquer forma de adicionar movimentos ao jumplist, mas se você realmente quiser ser capaz de pular para trás com ''
e tratar movimentos como saltos, você poderia fazer algo assim:
function! MarkJ()
mark '
return "j"
endfunction
nnoremap <expr> j MarkJ()
MarkJ()
define manualmente a marca '
, adicionando essa linha ao jumplist (sempre na coluna 0, embora) e, em seguida, retorna j
para o mapeamento. Infelizmente, você teria que fazer o mesmo para cada movimento.
Não consigo pensar em nenhuma maneira de limitar isso facilmente a movimentos com multiplicadores, mas seguindo o exemplo getchar()
em :help map-expr
, seria teoricamente possível definir um conjunto de funções e mapeamentos que só chamariam MarkX()
se o movimento seguir um multiplicador. Isso é bastante artificial, e pode se tornar caro o suficiente para diminuir o desempenho.