在 vimrc 中设置 tab 为 2 个空格,但在编辑 python 个文件时仍然设置为 4 个空格

Set tab as 2 spaces in vimrc, but still set to 4 spaces when editing python files

我在我的 vimrc 中将制表符设置为等于 2 个空格。这在我编辑 java 文件时有效,但由于某种原因,当我编辑 python 文件时,制表符被设置为 4 个空格。

我的 vimrc:

filetype plugin indent on
syntax on

set backspace=indent,eol,start

set expandtab
set tabstop=2
set shiftwidth=2
set softtabstop=2
set showtabline=2

set number
set showcmd
set cursorline
set wildmenu
set lazyredraw
set showmatch


call plug#begin('~/.vim/plugged')

Plug 'scrooloose/nerdtree'
Plug 'drewtempelmeyer/palenight.vim'
Plug 'NLKNguyen/papercolor-theme'
Plug 'rakr/vim-one'
Plug 'morhetz/gruvbox'
Plug 'tpope/vim-commentary'
Plug 'ajh17/VimCompletesMe'
Plug 'sheerun/vim-polyglot'

call plug#end()

highlight ColorColumn ctermbg=gray
set colorcolumn=81
autocmd BufNewFile,BufRead * setlocal formatoptions=croqtn textwidth=80

set t_Co=256
set term=xterm-256color
let g:gruvbox_contrast_dark='dark'
colorscheme gruvbox
set background=dark

map <C-x> :NERDTreeToggle<CR>
noremap <TAB> <C-W>w  

" autoclose matching quotes, braces and parentheses
inoremap {<CR> {<CR>}<ESC>O
inoremap {;<CR> {<CR>};<ESC>O
inoremap jj  <Esc>
inoremap <Esc> <Nop>
inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
inoremap <C-y> <C-o>h
inoremap <C-u> <C-o>l

这是在文件类型的 python 插件中自动设置的。

ftplugin/python.vim

if !exists("g:python_recommended_style") || g:python_recommended_style != 0
    " As suggested by PEP8.
    setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
endif

因此您可以通过以下方式禁用它:

let g:python_recommended_style = 0
filetype plugin indent on
syntax on
...