Добавление VI # перемещает курсор в начало строки

Почему vim перемещает меня в начало строки, когда я нажимаю # для комментария или комментария в файле perl?

Почему я не хочу, чтобы мой комментарий был с отступом на том же уровне текущего кода?

3 ответа

Убедитесь, что в вашем.vimrc установлено следующее:

filetype plugin indent on
syntax enable

Если вы используете параметр отступа "smartindent", решение вашей проблемы объясняется в :help smartindent Документация VIM:

При вводе "#" в качестве первого символа в новой строке отступ для этой строки удаляется, "#" помещается в первый столбец. Отступ восстанавливается для следующей строки. Если вы не хотите этого, используйте это отображение: ":inoremap # X^H#", где ^ H вводится с помощью CTRL-V CTRL-H. При использовании команды ">>" строки, начинающиеся с "#", не сдвигаются вправо.

Я думаю, что это сбивает с толку и думает, что вы редактируете файл C, где директивы препроцессора должны быть против левого поля.

:inoremap # X^H#

не работал для меня, вот что сделал:

inoremap # ^T#^D
  • ^T (Ctrl-T) отступы
  • ^D unindents.

Недостаток этого решения заключается в том, что если вы не находитесь в столбце отступа, он привязывает вас к одному. Если ваш код имеет отступ, это не должно быть проблемой.

Другие вопросы по тегам