Комментарии (#) идут к началу строки в режиме вставки в Vim
Всякий раз, когда я хочу добавить комментарий в строку с отступом в vim, я нажимаю Shift - o (откройте новую строку выше текущей, переключитесь в режим вставки) и начните вводить комментарий Python (используя #
). Этот хэш затем магически перемещается в начало строки (без отступов), и я должен щелкнуть вкладку несколько раз.
Кто-нибудь знает, как обойти это?
Ответы
Ответ 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") <- cursor position in command mode
Введите , c Space, и вы получите:
def func():
#print("indented")