Domanda

Vim 7 (enhanced) su CentOS 5, ed è viene fornito con tutti i soliti Vim plugins / script già pronti a partire.

$ 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

Vorrei pensare che quando si apre un file con estensione .py (vim file.py) sarebbe caricare automaticamente questi plugin, ma non sono sicuro che sia il caso. Quello che voglio è:

Premere TAB e ricevere quattro spazi. Rientro automatico riga successiva per le suite, condizionali, ecc.

Ho questo lavoro impostando esplicitamente tabstop, shiftwidth, ecc nel mio file .vimrc. Non è questo ciò di cui sopra Python file sono per? Perché devo impostare queste cose nella mia .vimrc? Come faccio ad avere queste caratteristiche dalla Vim plug-in, invece?

Vimrc corrente:

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
È stato utile?

Soluzione

Impostazione tabstop, shiftwidth, ecc ... nel vostro vimrc è corretta. Questi impostare le impostazioni globali, così come servono come parametri al supporto indentazione specifico per tipo di file.

I plugin lingua indentazione usano queste impostazioni, ma in genere anche impostare un'espressione trattino (:he inde) appropriata per la lingua. Così il penetratore Python dovrebbe essere automaticamente rientro dopo una dichiarazione di apertura del blocco (DEF, di classe, per ...), e dedenting dopo una chiusura di un (ritorno, passa, continua ...) e di farlo secondo il ts, SW, ... è stata impostata.

Se siete ancora incerti se il plugin sta caricando per un buffer, semplicemente :filetype per mostrare la rilevazione, plug-in, e le impostazioni di rientro, e :set ft? per vedere il tipo rilevato.

Altri suggerimenti

La mia comprensione è che il file python.vim è solo un file di evidenziazione della sintassi forse, perché i file Python possono essere rientrati diversi modi. PEP8 prescrive quattro spazi, ma i file legacy potrebbe essere diverso tra cui utilizzando le schede .

Alcuni dei nostri file Python legacy in realtà utilizzano due spazi per trattino. Quindi lascio Python rientro a Vim e configurarlo per ogni file e per ogni tipo di file. La seguente riga nel Vimrc mi dà impostazioni Python-specifiche che differiscono da dire il mio XML, XHTML e HTML (due posti).

au FileType python setl shiftwidth=4 tabstop=4

È inoltre possibile impostare le impostazioni specifiche da file con un modeline che è utile se si fa avere i file legacy.

# vi: set tabstop=2 expandtab textwidth=70 filetype=python:
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top