.vimrc для Python
Моя текущая конфигурация .vimrc ниже:
set nohlsearch
set ai
set bg=dark
set showmatch
highlight SpecialKey ctermfg=DarkGray
set listchars=tab:>-,trail:~
set list
autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class
set tabstop=4
set shiftwidth=4
set expandtab
set autoindent
set smartindent
syntax on
set listchars=tab:>-
set listchars+=trail:.
set ignorecase
set smartcase
map <C-t><up> :tabr<cr>
map <C-t><down> :tabl<cr>
map <C-t><left> :tabp<cr>
map <C-t><right> :tabn<cr>
Однако, когда я пишу скрипты python, когда я нажимаю "ENTER", он перейдет к НАЧАЛО следующей строки. Что я могу добавить, чтобы она автоматически меняла?
Ответы
Ответ 1
Короткий ответ заключается в том, что в вашем автозапуске отсутствует триггер BufEnter, поэтому он не запускается при создании нового файла. Вместо этого попробуйте:
au BufEnter,BufRead *.py setlocal smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class
Обратите внимание, что я также изменил set
на setlocal
. Это предотвратит использование этих опций для других параметров буферов.
"Правильный" способ сделать то, что вы пытаетесь сделать, - добавить filetype indent on
в ваш .vimrc. Это включит встроенный отступ на основе типа файлов. Vim поставляется с поддержкой отступов Python. См. :help filetype-indent-on
для получения дополнительной информации.
Ответ 2
Попробуйте следующее:
filetype indent on
filetype on
filetype plugin on
Я в первую очередь занимаюсь программированием на Python, и это главная тяжесть моего vimrc
set nobackup
set nowritebackup
set noswapfile
set lines=40
set columns=80
set tabstop=4
set shiftwidth=4
set softtabstop=4
set autoindent
set smarttab
filetype indent on
filetype on
filetype plugin on
Ответ 3
Подумайте о том, чтобы взглянуть на официальный .vimrc для соблюдения следующих соглашений PEP 7 и 8. Присутствует здесь
http://svn.python.org/projects/python/trunk/Misc/Vim/vimrc
Ответ 4
Вам не нужно явно указывать ключевые слова python. Файл VIM/indent/python.vim позаботится об этом. Вам просто нужно включить отступ и автодомен типа filetype.
Ответ 5
I (просто) используйте это:
set shiftwidth=4
set tabstop=4
set expandtab
filetype plugin on
filetype indent on
syntax on
Ответ 6
Я бы сказал, что эта конфигурация обеспечивает что-то, не вызывая конфликтов (/etc/vim/vimrc
):
" Python Setup
autocmd Filetype python setlocal ts=2 sw=2 expandtab
autocmd Filetype python set number
autocmd Filetype python set autoindent
autocmd Filetype python set expandtab
autocmd Filetype python set shiftwidth=4
autocmd Filetype python set cursorline
autocmd Filetype python set showmatch
autocmd Filetype python let python_highlight_all = 1
autocmd Filetype python set colorcolumn=80