I'm using (a modified version) of the solution proposed in http://www.thegeekstuff.com/2008/12/vi-and-vim-autocommand-3-steps-to-add-custom-header-to-your-file/ to create and update headers for my source codes automatically.
As explained in the above-mentioned page, upon invoking a write command in vim, the following sequence of commands are executed:
- A mark is set at the current position of the file.
- The "Last Modified" filed is updated. This moves the cursor to the beginning of the file (where the search-and-replace takes places).
- The cursor is returned to previously marked position.
This is fine, but there is a slightly annoying issue: Suppose we're editing a line close to the bottom of the window. If at that point we save the file, because of the cursor moves (for updating the header) the line we were editing jumps so that it is positioned in the middle of the window.
To my understanding 'a moves the cursor to the place marked by mark a and adjusts the window contents such that the current line appears in the middle of the window. I was wondering if there is a way to make "marks" remember also the exact relative position of the marked line in the window and maintain this position when jumping back to the mark?