I have some Vim functions that make changes to the document format. When I call this function, I currently use something like the following to save and restore my cursor positio
You can save a mark for the first on-screen line that is displayed in the window and restore that as well. An example that executes a g? command on the whole buffer and restores both positions:
:noremap mkHmlggg?G`lzt`k
Walking through the command:
mk: set mark k for the current positionH: go to the first on-screen lineml: set mark l for the this positionggg?G: execute the command: jump to markl`zt: set this line the first on-screen line: jump to markk`