Pergunta

Eu tenho Vim 7 (aprimorado) no CentOS 5 e vem com todos os plugins/scripts VIM usuais prontos para ir.

$ find /usr/share/vim/vim70/ -name \*python\*
/usr/share/vim/vim70/syntax/python.vim
/usr/share/vim/vim70/ftplugin/python.vim
/usr/share/vim/vim70/indent/python.vim
/usr/share/vim/vim70/autoload/pythoncomplete.vim

Eu pensaria que, ao abrir um arquivo que termina em .py (vim file.py) Carregaria automaticamente esses plugins, mas não tenho certeza se esse é o caso. O que eu quero é:

Imprensa ABA e receba quatro espaços. Recunda automática Próxima linha para suítes, condicionais, etc.

Eu tenho esse funcionamento definindo explicitamente o TabStop, ShiftWidth, etc. no meu arquivo .vimrc. Não é isso que é o acima Pitão Os arquivos são para? Por que eu tenho que definir essas coisas no meu .vimrc? Como obtenho esses recursos dos plugins Vim?

Atual .vimrc:

syntax on
set hls
set expandtab
set textwidth=0
set tabstop=4
set softtabstop=4
set shiftwidth=4
set autoindent
set backspace=indent,eol,start
set incsearch
set ignorecase
set ruler
set wildmenu
set smarttab
filetype indent on
filetype on
filetype plugin on
Foi útil?

Solução

Configurando o tabstop, o ShiftWidth, etc ... no seu VIMRC está correto. Eles definem suas configurações globais, além de servir como parâmetros para o suporte de indentação específico do FileType.

Os plugins de indentação de idiomas usam essas configurações, mas geralmente também definem uma expressão de recuo (:he inde) apropriado para o idioma. Assim, o indentador Python deve estar automaticamente recuar após uma declaração de abertura de bloco (def, classe, para ...) e deduzir após um fechamento (retornar, passar, continuar ...) e fazê -lo de acordo com o TS, SW, ... você definiu.

Se você ainda não tem certeza se o plug -in está carregando para um buffer, basta fazer :filetype para mostrar a detecção, plug -in e configurações de recuperação e :set ft? Para ver o tipo detectado.

Outras dicas

Meu entendimento é que o arquivo python.vim é apenas um arquivo de iluminação de sintaxe, porque os arquivos Python podem ser recuados de várias maneiras. Pep8 Prescreve quatro espaços, mas os arquivos legados podem ser diferentes, incluindo o uso de guias.

Alguns de nossos arquivos Legacy Python realmente usam dois espaços por recuo. Por isso, deixo o Python recuando para o VIM e configuro -o por arquivo e por arquivo. A linha a seguir em .vimrc me dá configurações específicas de Python, que diferem de My XML, XHTML e HTML (dois espaços).

au FileType python setl shiftwidth=4 tabstop=4

Você também pode definir configurações específicas por arquivo com um Modeline O que é útil se você tiver arquivos legados.

# vi: set tabstop=2 expandtab textwidth=70 filetype=python:
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top