Pythonを用いてVimを拡張してみよう
あなたがテキストエディタVimを使っているならば、あらかじめ用意されているその機能の多さと便利さについては既にご存知のことだろう。そして、このエディタに独自の機能を追加しようとしたものの、Vimscript言語の難解さに嫌気が差したことがある人にとっては、VimがPythonのスクリプティングを内部でサポートするようになったということは良いニュースだろう。
以下のコマンドは、あなたの使用しているVimのバージョンが-pythonフラグを指定してコンパイルされたものである場合にのみ動作する。バージョン7.0以降のバイナリ版であればデフォルトでこのフラグが指定されているものの、それよりも古いバージョンでは指定されていない可能性がある。あなたの使用しているVimにPythonがサポートされているかどうかは、以下のコマンドを入力してみれば判る。
:python print "hi"
ステータスバーに「hi」と表示されていれば、OKだ。
ちょっとしたPythonプログラムをその場で使いたいという場合にはPythonコマンドをいつでも用いることができるものの、上記の例からも判るように、その標準出力先はドキュメントではなくステータスバー上となっている。
より複雑なPythonコードを使用するには、コードを関数として組み込んでしまうのが良いだろう。そのための方法にはいくつかあるが、PythonブロックをVimscript関数に組み込むか、Python関数を呼び出すマップもしくはマクロを使用するかのいずれかとなっている。ここでは前者の方法を説明しよう。
ウェブページをダウンロードし、カレントウィンドウに挿入するために、urllibとBeautifulSoupライブラリを用いる関数を記述することにしたい。BeautifulSoupについてあまり知らないという読者の方は、Pythonによるウェブサイトのスクレーピングについて説明しているこのコラムを読んでみてもらいたい。