It seems that in Vim
:read <file> command (used for inserting other file’s
contents below the cursor in current buffer) changes alternate file to the
inserted one (you can jump between current and alternate file with
C-6, which is super handy). It’s not obvious and in my opinion it breaks
the rule of least astonishment, because I totally didn’t ask Vim to do
anything outside of a current buffer (and buffer list shown by
even changed and might not contain that file at all). This behaviour
complicated my workflow for quickly adding new notes from templates.
Fortunately (TIL) there’s easy fix – or rather workaround – for this. We
can prefix any Vim command with
:keepalt and this command won’t change
alternate file in any way. So
:r <file> becomes
:keepalt r <file>. Super
handy and good to know, especially for making custom functions, plugins etc.