2013-05-15 14 views
6

Python kodunu yazmak için vim kullanmak istiyorum, ancak otomatik girintide bir sorun var. İlk önce en son python.vim'i http://www.vim.org/scripts/script.php?script_id=790'dan indirdim ve doğru dizine yerleştirdim. Sonra vimrc'imi düzenledim.Otomatik girinti, vim kodlama python'u kullanırken çalışmaz

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 

Şimdi 'eğer' 'ise' 'için' gibi anahtar kelimeler, mükemmel autoindent fark etmiştir. Ama 'def', 'try', 'except' üzerinde çalışmıyor. Ne yapmalıyım? Çok teşekkür ederim.

cevap

7

Vimrcimde uzun zamandır bu çizgiye sahibim, bugünlerde daha iyi bir yol olup olmadığını bilmiyorum. ama en azından deneyebilirsin.

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 

ve ben de

+0

ve çalışır:

Sen bunun gibi başka bir komut dosyası denemek isteyebilirsiniz. Çok teşekkür ederim :) –

+0

Vimrc için "filetype eklentisi girintisi" eklediğimde, otomatik girinti doğru. Teşekkür ederim. –

1

filetype plugin indent on 

var Yani herhangi Otomatik girintilemeyi, sadece sözdizimi vurgulamasını yapmaz bağlantılı vim komut dosyası.

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

budur o if için çalışıyor neden:

gözlemlediğiniz otomatik girinti o C kodlamak için tasarlanmış ve sadece anahtar kelimeler burada anlatılan tanıması, vim yerleşik biridir ve while, ancak def değil (C içinde def yoktur). set cindent ile açtınız. Bu iyi bir fikir

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

+0

Aslında vimrc için "filetype eklentisi girintisi" eklediğimde, otomatik girinti doğru olur. Bu, bağlandığım komut dosyasının otomatik girintiye sahip olduğu anlamına mı geliyor? –