Se você fechar uma dobra de dentro dela com zc
e, em seguida (sem se mover), abri-la novamente com zo
, a posição do cursor permanecerá na dobra. Isso porque o número da linha atual permanece como estava antes de fechar a dobra, mesmo que essa linha esteja oculta na dobra.
No entanto, quando você se move, o Vim precisa atualizar a posição do cursor para algo visível. Para movimentos verticais, isso significa tornar a primeira linha dobrada na linha atual; todas as outras linhas estão escondidas dentro da dobra, e você teria que abrir a dobra para ir até lá.
Se você quiser mudar isso, sua abordagem sugerida com o uso de uma marca parece razoável. No entanto, isso cobriria apenas a revisão da dobra última (ou um máximo de 26 dobras, limitado pelo número de marcas locais de buffer disponíveis). A coisa boa sobre as marcas é que elas se adaptam automaticamente às mudanças nos números das linhas; isto é, as edições acima da dobra não invalidariam a informação de posição. Se você quisesse armazenar qualquer número de dobras (excedendo o número de marcas), você teria o problema de que uma dobra só pode ser identificada pelo intervalo atual de linhas, e elas estão sujeitas a alterações durante as edições.
TL; DR: Vá em frente e experimente sua ideia, mas esteja ciente de que ela está limitada à última dobra e não pode ser generalizada para cobrir todas as dobras.
Resposta de bônus: As marcas de arquivo (maiúsculas) são armazenadas no arquivo viminfo , controlado por :help viminfo-f
e :help viminfo-'
. :mkview
não considera marcas.