1

I would like to map a key so I can quick close all folds but keep unfolded on current cursor and keep cursor's position too.
Through :h fold I can use zMzv but it can't keep cursor's position.

4
  • 1
    Oddly enough, I tried zMzv today and it kept the correct cursor position... curious.
    – D. Ben Knoble
    Nov 7 '17 at 0:06
  • I should be more clear about this, I mapped to a key so that it will contain <CR> at the end and reset cursor to next line.
    – Tuyen Pham
    Nov 7 '17 at 0:13
  • Why do you need the <CR> though? I.e., why doesn’t for example nnoremap <leader>zo zMzv do the trick?
    – D. Ben Knoble
    Nov 7 '17 at 0:17
  • Sorry about the question, you're right. But screen will blink because close and open fold task - the output. mark seems sovled it, but Idk why.
    – Tuyen Pham
    Nov 7 '17 at 0:28
3

You can set a mark at the beginning of your mapping and then jump there at the end. For example:

nnoremap <leader>zv :normal mazMzv`a<CR>

Postscript: This was posted when I was merely an apprentice Vim Ninja rather than the MVN (Master Vim Ninja) you see before you today. Of course, in the <ahem> normal course of things one would be wasteful to create such an nmap when nno <leader>zv mazMzv`a is equivalent. Funny thing, though...OP says the less enlightened version was the only one to solve his problem. Personally I can't reproduce even the cursor moving part so I just take them at their word and this answer lives on; a signpost aside the road on which I journeyed to top of the mountain. B Layer - 6/14/2020 ;)

2
  • 1
    I am curious if am I missing something? If I press zx , zv , zMzv, etc.. the folds change but the cursor does not move. So I don't understand why the mark is necessary.
    – Mass
    Nov 6 '17 at 20:17
  • If you map zx to a key: nnoremap <space>zx :zx<CR> for i.e, ` zx` will change cursor's position.
    – Tuyen Pham
    Nov 7 '17 at 0:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.