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

378

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

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

3
Вы имеете в виду ввод `#` в режиме вставки, или вы используете отображение для комментирования строки? 13 лет назад 0
@jHack - отметьте «связанные» справа; vi абсолютно связан (и часто спрашивается / отвечает) KevinDTimm 13 лет назад 1
@KevinDTimm: ты прав, я постараюсь убрать свой флаг / комментарии 13 лет назад 0
Еще раз ... эти вопросы vim относятся к SO, а не к SU. Randy Morris 13 лет назад 1

3 ответа на вопрос

4
Fredrik Pihl

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

filetype plugin indent on syntax enable 

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

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

1
Edd Barrett

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

0
arcanereinz
:inoremap # X^H# 

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

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

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