Skip to content

vi で Python を補完する

Python のソースコードを書く為に、様々なエディタが存在しますが、使いなれた vi エディタで Python が開発出来れば楽です。以下、Python を vi エディタで開発する際に便利な設定を模索してみます。

Pydiction による補完

Pydiction を使うと、vi で Python のコードを補完することが出来るようになります。

Pydiction - Tab-complete your Python code : vim online から Pydiction のソースコードをダウンロードします。現時点ではバージョン 1.2 でした。ダウンロードしたソースコードは展開し、python_pydiction.vim は ~/.vim/after/ftplugin に、complete-dict と pydiction.py は ~/.vim/pydiction にコピーします。

1
2
3
4
5
unzip pydiction-1.2.zip
mkdir -p ~/.vim/after/ftplugin/
cp pydiction-1.2/python_pydiction.vim ~/.vim/after/ftplugin/
mkdir -p ~/.vim/pydiction/
cp complete-dict pydiction.py ~/.vim/pydiction/

~/.vimrc に Pydiction 用の設定を追記します。あわせて、インデントやタブ幅の設定も実施します。

1
2
3
4
5
6
" python
filetype plugin on
autocmd FileType python let g:pydiction_location = '~/.vim/pydiction/complete-dict'
autocmd FileType python setl autoindent
autocmd FileType python setl smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class
autocmd FileType python setl expandtab tabstop=4 shiftwidth=4 softtabstop=4

これで、vi で Python のソースコードを編集する際、タブキーで補完が効くようになります。

01

vi から Python を実行する

「ソースコードを書く&実行する」を繰り返す際、emacs や screen で画面を分割して作業したり、vi から外部コマンドとして Python を実行する、という方法もあると思いますが、vi での編集時に、エディタ内から気軽に編集中のソースコードを実行出来ると便利です。以下の設定を ~/.vimrc に追記すると、「Ctrl + P」で vi で編集中のソースコードを Python で実行出来るようになります。実際に vi から実行する際はいったん、ソースコードを保存してから「Ctrl + P」する必要があります。

1
2
3
4
5
6
7
" Execute python script C-P 
function! s:ExecPy()
    exe "!" . &ft . " %"
    :endfunction
    command! Exec call <SID>ExecPy()
    autocmd FileType python map <silent> <C-P> :call <SID>ExecPy()
<CR>

インタラクティブシェルでも補完を有効にする

bpython を使うと、インタラクティブシェルでも補完を有効にすることが出来ます。bpython は easy_install でインストールすることが出来ます。

1
sudo easy_install bpython

easy_install を使うと、/usr/local/bin/bpython にインストールされていました。bpython のインストール後、インタラクティブシェルを起動するには python ではなく、bpython を実行します。bpython での補完は入力状況に応じて随時、実施されます。

02