Убедитесь, что в вашем .vimrc установлено следующее:
filetype plugin indent on syntax enable
Если вы используете параметр отступа «smartindent», решение вашей проблемы объясняется в :help smartindent
документации VIM:
При вводе «#» в качестве первого символа в новой строке отступ для этой строки удаляется, «#» помещается в первый столбец. Отступ восстанавливается для следующей строки. Если вы не хотите этого, используйте это отображение: ": inoremap # X ^ H #", где ^ H вводится с помощью CTRL-V CTRL-H. При использовании команды «>>» строки, начинающиеся с «#», не сдвигаются вправо.