Конфигурация .vimrc для Python - PullRequest
       6

Конфигурация .vimrc для Python

19 голосов
/ 06 октября 2009

Моя текущая конфигурация .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», он переходит в НАЧАЛО следующей строки. Что мне добавить, чтобы оно автоматически для меня отображалось?

Ответы [ 6 ]

14 голосов
/ 06 октября 2009

Попробуйте это:

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
12 голосов
/ 06 октября 2009

Короткий ответ: в вашем autocmd отсутствует триггер 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 для получения дополнительной информации.

5 голосов
/ 07 марта 2012

Подумайте о том, чтобы взглянуть на официальный .vimrc для соблюдения соглашений PEP 7 и 8. Присутствует здесь

http://svn.python.org/projects/python/trunk/Misc/Vim/vimrc

4 голосов
/ 06 октября 2009

Вам не нужно явно делать отступы для ключевых слов python. Об этом заботится файл $ VIM / indent / python.vim. Вам просто нужно включить отступ типа файла и автоиндент.

3 голосов
/ 14 июня 2013

Я (просто) использую это:

set shiftwidth=4
set tabstop=4
set expandtab
filetype plugin on
filetype indent on
syntax on
0 голосов
/ 18 апреля 2019

Я бы сказал, что эта конфигурация обеспечивает что-то, не вызывая конфликтов (/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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...