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 mark
l`zt
: set this line the first on-screen line: jump to mark
k`