Home / Posts / Hold Position! View Raw
30/07 — 2019
9.18 cm   1.0 min

Hold Position!

Often times, when I run a vim command that makes “big” changes to a file (a macro or a :vimgrep command) I lose my original position and feel disoriented.

Save position with winsaveview()!

The winsaveview() command returns a Dictionary that contains information about the view of the current window. This includes the cursor line number, cursor coloumn, the top most line in the window and a couple of other values, none of which concern us.

Before running our command (one that jumps around the buffer, a lot), we save our view, and restore it once its done, with winrestview.

let view = winsaveview()
s/\s\+$//gc              " find and (confirm) replace trailing blanks
winrestview(view)        " restore our original view!

It might seem a little overkill in the above example, just use `` (double backticks) instead, but it comes in handy when you run your file through heavier filtering.

Hi.

I'm Akshay, I go by nerd or nerdypepper on the internet.

I am a compsci undergrad, Rust programmer and an enthusiastic Vimmer. I write open-source stuff to pass time. I also design fonts: scientifica, curie.

Send me a mail at nerdy@peppe.rs or a message at nerdypepper@irc.rizon.net.

Home / Posts View Raw