2013-05-15 13 views
6

Chcę użyć vim do pisania kodu Pythona, ale istnieje problem z automatycznego wcięcia. Najpierw pobrałem najnowszy python.vim z http://www.vim.org/scripts/script.php?script_id=790 i ustawiłem go w prawidłowym reż. Potem edytowałem mój vimrc.Auto wcięcie nie działa podczas używania vim kodowania python

syntax on 
set nu 
set tabstop=4 
set softtabstop=4 
set shiftwidth=4 
"set cindent 
set autoindent 
set smartindent 
set expandtab 
set filetype=python 
au BufNewFile,BufRead *.py,*.pyw setf python 

Teraz uważam, że słowa kluczowe, takie jak "za", "jeśli", "podczas gdy", mogą automatycznie optymalizować. Ale nie działa na "def", "try", "except". Co mam zrobić? Dziękuję Ci bardzo.

Odpowiedz

7

Mam tę linię w moim vimrc przez długi czas, nie wiem, czy jest lepsza droga w dzisiejszych czasach. ale możesz przynajmniej spróbować.

set cindent 
autocmd FileType python setlocal foldmethod=indent smartindent shiftwidth=4 ts=4 et cinwords=if,elif,else,for,while,try,except,finally,def,class 

i mam

filetype plugin indent on 

zbyt

+0

To dobry pomysł i to działa. Bardzo dziękuję :) –

+0

Kiedy dodaję "wcięcie wtyczki filetype" na vimrc, poprawiam auto-wcięcie. Dziękuję Ci. –

1

że Vim skrypt jesteś związana nie robi żadnych auto wcięcia, tylko podświetlanie składni.

Auto-wcięcie obserwujesz to taka, która jest wbudowana w vim, jest zaprojektowany do kodowania C, a to tylko rozpoznaje opisane słowa kluczowe tutaj:

http://vimdoc.sourceforge.net/htmldoc/options.html#%27cinwords%27

To dlatego, że pracuje dla if i while, ale nie def (nie ma def w C). Włączono to przy użyciu set cindent.

Możesz spróbować innego scenariusza jak ten:

http://www.vim.org/scripts/script.php?script_id=974

+0

Właściwie, gdy dodaję "wcięcie wtyczki filetype" do "vimrc", poprawiam auto-wcięcie. Czy to oznacza, że ​​skrypt, z którym się łączyłem, ma automatyczne wcięcie, ale go nie włączyłem? –