Подтвердить что ты не робот

Комментарии (#) идут к началу строки в режиме вставки в Vim

Всякий раз, когда я хочу добавить комментарий в строку с отступом в vim, я нажимаю Shift - o (откройте новую строку выше текущей, переключитесь в режим вставки) и начните вводить комментарий Python (используя #). Этот хэш затем магически перемещается в начало строки (без отступов), и я должен щелкнуть вкладку несколько раз.

Кто-нибудь знает, как обойти это?

4b9b3361

Ответ 1

Я полагаю, что у вас set smartindent в вашем .vimrc

См. :h smartindent

When typing '#' as the first character in a new line, the indent for
that line is removed, the '#' is put in the first column.  The indent
is restored for the next line.  If you don't want this, use this
mapping: ":inoremap # X^H#", where ^H is entered with CTRL-V CTRL-H.
When using the ">>" command, lines starting with '#' are not shifted
right.

Я считаю, что вам не нужен smartindenting при кодировании python. Поэтому просто удалите его из своих настроек или добавьте следующее в свой .vimrc:

au! FileType python setl nosmartindent

Ответ 2

попробуйте поместить это в свой .vimrc:

autocmd BufRead *.py inoremap # X<c-h>#

Это приведет к тому, что добавление знака хэша (фунта) всегда отступы в исходных файлах Python.

Ответ 3

Вы можете попробовать Nerd Commenter, который является плагином, который позволяет автоматически добавлять комментарии к строкам на большинстве языков. Вы просто поместите курсор в интересующую вас строку и введите , c Space, и строка будет прокомментирована. Эти же нажатия клавиш удаляют комментарий, чтобы показать строку.

Итак, если у вас есть:

def func():
  print("indented") &lt- cursor position in command mode

Введите , c Space, и вы получите:

def func():
  #print("indented")