Pythonを用いてVimを拡張してみよう
翻訳校正:村上雅章・野崎裕子
テキストエディタVimはPythonのスクリプティングもサポートしている。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によるウェブサイトのスクレーピングについて説明しているこのコラムを読んでみてもらいたい。
- 5人の推薦記事
- 0人がクリップ
-
ソーシャルブックマーク(-)
- トラックバック(0)
- 今日のトップ記事
- 昨日
- 2日前
- 5日前
- 6日前
- 7日前
- ホワイトペーパー
- 話題のタグ
mixiサービス企画部長に聞く、「プラットフォームを開放する理由」
iPhoneのPush Notification Serviceでなにが起こるか
iPhone 3Gはメールにファイルを添付できないの?
発射台での度胸試し--J・L・ガセー氏が見た「MobileMe」の問題点
Firefox 3.1で強化されるHTML 5対応--Canvas Text APIを検証
つなげ! 速く、美しく、正確に--光ケーブル工事の技能を競う全国大会が開催
あなたのパワポ資料が近未来的に:MSがプラグイン公開
無料の「Oracle Database XE」で高速バッチ処理:活用のポイント
Rubyでどう書く?:RubyCocoa+Core Animationでお手軽アニメーション
なつかしのHTMLタグ「marquee」--CSS 3のマーキーを検証してみる
子どもに学ばせるとよい言語とは?
セキュリティ対策レベルテスト公開!
ZDNet Japan Green IT
Techno Exchange
仮想化環境で求められるストレージの要件
DELLが掲げる「新・仮想化アセスメントサービス」
ZDNet Japan ホスティング特集
APC SOLUTIONS FORUM 2008をレポート