Is it possible to keep cursor in constant horizontal position (column) while scrolling window (or moving cursor) up and down?

For example if I have file with such lines:



(I put . in places where there is space)

When I have cursor at the end of "test" word and then move it down (or scroll window), cursor changes it's horizontal position to the last character of current line. It is quite annoying when I edit files with long lines without wrapping, because if I scroll window horizontally to some position and then want to go down some lines and there happend to be a short line, then my whole window is automatically scrolled horizontally to the end of this short line and I have to scroll it back to it's previous position manually.

How this behaviour can be changed?

1 Answer 1


The way I solve that is to set the 'virtualedit' option:

:set virtualedit=all
  • This solution doesn't work with vim 8.0, with -u NONE --noplugin. At least wrapping is enabled by default.
    – sevo
    Commented Aug 24, 2017 at 17:01
  • It works fine for me using Vim 8.0.691 in a terminal on Linux. Can you explain how it isn't working for you?
    – garyjohn
    Commented Aug 25, 2017 at 14:42
  • 2
    With this option, 9j keeps cursor column position, but scroll C-d moves cursor to the left. It turns out that I also need nostartofline.
    – sevo
    Commented Oct 26, 2017 at 21:13

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .