Я использую плагин авто-пар , чтобы помочь авто близких скобок.

В vim при определении диктовок или списков будет выполнено автоматическое форматирование

| это позиция курсора

a_dict = {
        | # the indent is 8 spaces width, but I already set 4 spaces width indent in .vimrc
        }

a_lst = [
        |
        ]

a_lst_with_a_very_loooooooooooong_name = [
        |
        ]

но я хочу, чтобы он форматировал код следующим образом

lst = [
    |
]

Как я могу это сделать?

1 ответ1

0

Для отступов Python в vim я использую этот плагин для отступов pep8 с Vundle. Этот плагин работает с вашим и дает вам функциональность, которую вы хотите (по крайней мере, на моем компьютере)

Пример:

lst = [
    |
]

abc = {
    |
}

Вам особенно нужна let g:pymode_indent = 0 в вашем .vimrc для плагина pep8.

Кто-то, кто имеет опыт в программировании на vim, может изменить ваш плагин, чтобы делать то, что вам нужно, но это решение может принести вам другие преимущества, если вы используете vim для программирования на Python.

Чтобы решить вашу проблему с 8 пробелами в качестве вкладки - попробуйте иметь все

set tabstop=4
set shiftwidth=4
set expandtab
filetype indent on

в вашем .vimrc (это то, что у меня есть, и это дает мне 4 пробела отступ)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .