Vim 101: Practicing Marks

Recently I've had several experienced Vim users tell me that they don't use marks. Mastering marks is just a question of practice, and the easiest way to get the hang of them is by using two commands:

  • :marks: This will list all of the current marks
  • '': Move to the position before the latest jump

Looking at :marks periodically will help you visualise how marks work. The '' command will potentially improve your workflow: it causes the cursor to move to the position before the previous jump.

Jumps are actually a class of motions. Motions are commands that move the cursor. When you move the cursor, Vim stores the previous position, and the previous position can be accessed with ''.

Let's say you're editing a unit test and there's an error on line 43. The G command can be used to move to line 43 so you can fix the issue. At that point, you can skip back to the previous line with ''. That fits into a compiler or test-based workflow quite nicely: discover error, skip to line number, fix, skip back.

I wrote a more detailed introduction to marks in Vim 101: Marks, but if you're struggling to fit marks into your workflow then just try mastering '' first. By looking at the output of :marks and :jumps (abbreviation: :ju), you'll be able to see how marks relate to jumps and how in turn motions relate to jumps.

blog comments powered by Disqus