Wizard In The Market
システムトレードの魔術師

*

VimでPythonのIDE 環境を一から構築する

公開日: : 最終更新日:2015/05/15 Python, Vim , , , , , ,

追記

これ見ておいたほうがいいかも。

WS000008

VimでPythonのIDE環境を構築するために、この週末を費やしていました。納得の行くところまで実装できたので、忘備録として残しておきます。これから新しくPythonのためにVimを使おうと思っている人も、すでに使ってらっしゃる方にも参考になれば嬉しいです。

筆者環境

  • Windows 7 x64
  • Python 2.7.9 x32

Vimの導入・設定

Vimは普通に公式ページからインストールしても結構ですが、日本人の間ではKaoriya版のVimがよく使われているそうです。日本語の対応や、Shogoさんのneocompleteのプラグインを使うために必要なLuaを含めたビルドになっている等、Kaoriyaを使うメリットは多いです。

Vim — KaoriYa
はてブ数
VimのWindows向けコンパイル済みバイナリを配布しています。

上記サイトから対象のVimのバイナリを入手して、対象のProgram Files下のディレクトリに保存してください。フォルダ中の”gvimrc”と”vimrc”というファイルは、とりあえず不要な設定が導入されているので削除しておきます。

他との兼ね合い上、Vimのencodingをutf-8で使いたいため、vim74-kaoriya-win32/switches/catalogフォルダに保存されているutf-8.vimをvim74-kaoriya-win32/switches/enabledフォルダに移動しておきます。

Kaoriyaを使うことに関しては、上記サイトを読んでおくと勉強になります。

Vundleの設定

rubyのBundleみたいな感じで簡単にGit上のVimプラグインを導入するためのプラグインです。

「NeoBundleを使うべき」みたいな記述をとても多く見つけるので、NeoBundleを使ったほうが良いかもしれませんが、まだVundleで事足りる程度しか使いこなせていないため、とりあえずVundleを導入しています。

インストールは~/.vim/bundleというディレクトリを作成し、上記サイトよりダウンロードしたファイルを~/.vim/bundle/vundleに保存します。

~/.vimrcというファイルを作成し、下記のように記述します。

これでVundleを使う準備ができました。

プラグインのインストール

~/.vimrcに下記のようにプラグインを追加していきます。

追加ができたら保存して、Vim上で.vimrcを操作していたならば”:so %”のコマンドを入力、それ以外の場合はVimを再起動します。

上記のコマンドをVim上で行うと、自動でプラグインがインストールされます。

各プラグインの説明と設定

Pythonの強力な入力補完 jedi-vim

Pythonの入力補完用プラグインで、かなり強力です。

ただいくつか不要な機能があるので、無効化するために設定します。

.vimrcに下記を追加します。

~/.vim/bundle/jedi-vim/jedi_vim.pyを少し書き換えます。

見栄えをよくしよう! vim-colors-solarized

solarizedのテーマを使うためのプラグインです。見た目がよく人気らしいので、導入してみました。

テーマを反映させるために、.vimrcに下記コードを追加します。

Vim上から編集中のPythonを実行! vim-quickrun

この機能がなければIDEと呼べないですね。私はquickrunで実現してみました。Pythonファイルの編集中にF11を押せば実行されます。標準の設定から、結果が表示される位置を変更しています。

これがなきゃ始まらない! vim-ipython

これは後日記事にしようと思います。ちょっとした設定をしないとちゃんと動きません。

余計な空白を一気に削除 vim-trailing-whitespace

“:FixWhitespace”というコマンドで余計な余白を削除することができます。

VimでGItの変更点が分かる vim-gitgutter

Vim上からGitの変更点を識別するためのプラグインです。

Pythonの構文解析 pyflakes-vim

Pythonの構文を解析し、エラーや警告を表示してくれるようになります。

入力補完 neocomplete

有名な補完プラグインらしいです。これから勉強します。

ファイルマネジメント nerdtree

ファイルツリーウィンドウを表示してくれます。私は.vimrcに下記のように書き加えて F2 ボタンで表示するようにしました。

ステータスバーをかっこ良く! vim-airline

ステータスバーの表示をかっこ良くするプラグインです。powerlineとどちらを使うかかなり迷ったのですが、機能が豊富そうなairlineにしました。

私のairline用の.vimrcの設定をご紹介しておきます。tablineを有効にしています。

多機能セレクタ ctrlp.vim

カレントディレクトリから対象のファイルを探してくれるコマンドを入力できるようになります。

ctrlp.vimの使い方まとめ – Qiita
はてブ数
ctrlp.vimとは ctrlp.vimは多機能セレクタとかそんな感じのvimプラグインです。環境変わるのが嫌で、カラースキーマやシンタックス関係意外あんま...

.vimrcの追加の設定

Windows歴20年以上なので、CTRL+VとCはどうしても欲しいところ。あと、Insertモード中のBackspaceでは改行も消して欲しい。そういった変更を加えています。

Insertモード中だけ、CTRL+Vでクリップボードに貼付けができ、Visualモード中だけCTRL+Cでクリップボードにコピーできます。

全画面表示で起動時する

デバッガー機能について

Eclipseからの乗り換えなので、pydevのような機能をVimにも欲しくなるのですが、残念ながらWindowsではこの機能の実装は難しいようです。

どうしても必要な場合は、Eclipse上から行うべきです。

参考までに、挑戦したプラグインについてご紹介しておきます。

pyclewn

Home — pyclewn
はてブ数
A Vim front-end to the gdb and pdb debuggers. The debugger output is redirected to a Vim window, the console. The debugger commands are m...

バージョン2.0より前では、Windowsでも動いていたらしいです。今ではインストール用のバイナリも削除され、無理やりインストールしてみましたがちゃんと動きませんでした。

vimpdb(GoogleCode)

普通に使えばちゃんと動きます。ただ、マルチプロセス等をしようすると簡単にVimが落ちます。

gotcha/vimpdb

デバッガーとしてVimが立ち上がるコードが入力できるようになります。Vimからデバッガーを起動する挙動ではないので、なんだかなーっといった感じ。

Eclim

VimからEclipseを操作できるようになるwrapperといった感じ。これが一番現実的です。Vim上からEclipseのプロジェクト管理ができるようになるので、これで開発を進めつつ、必要に慣ればEclipse上でデバッグするというのが一番効率が良い気がします。

まとめ

これで、だいたいの欲しい機能は実装できました。コードを書いてF11で実行してテスト、必要に慣れば、Eclipse上からデバッグするというのが良さそうです。良い快適なVim Lifeを!

あとがき

Vimmerとしてはまだまだnewbieなので、ぜひ先輩方からアドバイスをいただきたく、記事にしてみました。間違っているところや、もっと良い環境の構築方法がありましたら、ぜひご教示いただければ嬉しいです!

最終的な.vimrcファイル

参考リンク集

Using Vim as a Python IDE
はてブ数
About one year ago, I have switched to using Vim as my main text and code editor. Before that, I was using Emacs, but never really master...
Vim as a Python IDE – Unlogic
はてブ数
I’ve been spending quite a bit of time with our good old buddy Python recently, and when I do, I always invite along our mutual friend Vim.
にほんブログ村 為替ブログへ 
Fx-Kirin

About Fx-Kirin

2009年10月にFXを開始、翌年2010年5月から脱サラをしてFX業界に専念。 2012年10月頃から本格的に勝ち始め、一月で資産を倍にする、2年半月間負けなし等、安定した収支で2013年11月に生涯FX収支が1億を超える。 投資スタイルはシステムトレード。プログラミングの知識がほぼない状態から、独学で自分がしたいと思うことであればほぼ実現することが可能なレベルまで成長。好きな言語はRuby, Python。必要となればC++からVBA、Pascal等なんでも行う。MT4/MT5のプログラミングも得意。 2011年にはFXで稼いだ資金をもとにシンガポールに移住し、留学も兼ねて起業をチャレンジするほど、ビジネスを興すことに熱意がある。国内の業者を主に使い始めたことから、2012年に帰国。零細株式会社経営中。

Adsense

  • このエントリーをはてなブックマークに追加
  • Pocket
  • 64 follow us in feedly

関連記事

vim-slime を使って VIM の内容をコンソールに送信

この記事はVim Advent Calendar 2016の20日目の記事です。 選択行の内容をコンソールに送信

記事を読む

Pythonのsocketでプロセス間通信をして価格データ等を送信する

どうも、お久しぶりです。キリンです。 取り敢えず1ヶ月ほど、連続でブログの更新を続けてみたのですが、そ

記事を読む

CPP extension vs Cython vs CPython on calculating the mean of numpy array

I'd like to get any feedback to make cython faster like

記事を読む

Python での ポートフォリオの計算

Python でのポートフォリオの計算 ポートフォリオの計算について色々調べてみた。とりあえず使いたいって人はpo

記事を読む

DictCursor に AttrDict を指定する

記事を読む

no image

stop automatically closeing vim-ipython output with jedi-vim

Even though I commented out the following code in vim_ipytho

記事を読む

Python Mock で オリジナルのインスタンメソッドのを呼びたい時

autospec と sideeffect を組み合わせるのが解決策だった。

記事を読む

Windowsユーザ御用達の uci.edu から直接python wheelをインストールしてくれるライブラリ pipwin

あんまり情報が出てこないのでメモ書き。 https://twitter.com/fx_kirin/status/9

記事を読む

Quantopian の pyfolio を単利運用に対応させる。

pyfolio は どんなデータを入れても複利運用として計算してしまうので、人によっては望まない検証方法だったりし

記事を読む

PythonのThreadを待機させるか、必要の度に作成するのかのベンチマーク比較

QueueとThreadのベンチマーク比較 2つのケースについて比較検証してみました。 実際に処理する内

記事を読む

Comment

  1. LIN WEI より:

    If you are using vim 8 / neovim, maybe you can try asyncrun: https://github.com/skywind3000/asyncrun.vim as a replacement to quickrun with better user experience and expansibility.

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Adsense

DictCursor に AttrDict を指定する

Python requests に DefaultTimeout を設定する

Pythonコード 参考リンク [bm url="https://stackoverflow

Python Mock で オリジナルのインスタンメソッドのを呼びたい時

autospec と sideeffect を組み合わせるのが解決策だった。

Python 2, Python 3 で string を bytes に変換する。

共通の処理系にしておきたかったので、メモ書き。 [bm url="https://python

ctypes で c_char array を c_char_p に変換する

なかなか情報がなかったのでメモ書き。

→もっと見る

PAGE TOP ↑