python用vim設定
"vim python"などで検索すると、vim用のpython設定らしきものがいろいろとあるが、smartindentやcinwordsをハック的に使うものが多く、ここ最近のものですら"filetype indent on"を使わないものばかりに誘導されてしまいます。
ubuntuならvim-runtimeパッケージに、"/usr/share/vim/vim72/indent/python.vim"があるので、これを使う設定を第一にすべきでしょう(kaoriyaのvim7.2にもcygwinのvimにもindent/python.vimがあるのは確認済)。
必須設定
ふたつのファイルに以下の設定内容を書くだけです。
" ~/.vimrc syntax on filetype plugin indent on
" ~/.vim/ftplugin/python.vim setlocal softtabstop=4 setlocal shiftwidth=4 setlocal textwidth=80 setlocal smarttab setlocal expandtab setlocal nosmartindent
とりわけ、(よく検索でかかる設定例のように).vimrcなどでsmartindentしてあるとindentの動作がおかしくなるので、安全のためnosmartindentしておきます。
(4スペースインデントや80文字などの)設定はPEP-8にあわせています。
オプション設定
自分のvimの他のグローバル設定です(環境差や4ハードタブやeucなどは認めない)。
" ~/.vimrc set modeline set nobackup set incsearch set smartcase set showmatch set encoding=utf-8 set fileencoding=utf-8 set fileformat=unix set tabstop=8 set columns=80
自分の~/.vimrcは、上のにこの~/.vimrcを下に加えただけのものになっています。
TB返答: Re: python用vim設定 - ラシウラ - while ("im the true Vim master"); - vimグループ
まず、indentexprはvim72/indent/python.vimでsetlocalしてます。set nosmartindentは、~/.vimrcのset smartindentを打ち消したいためにしてるものです。
after/ftpluginですが、こちらも~/.vimrcのset群を上書きしたいだけで、システム標準の設定を上書きするわけではありません。そのためafterに置くものでは無いと思うのですけど。