PHP マニュアルを表示する Vim スクリプト

HOME | メモ一覧 | LastUpdate: 2005-02-20

説明と環境

PHP スクリプトを書く時に、関数名は覚えているのですが、引数などを忘れてしまって、関数の使い方を調べるようなことがよくあると思います。PHP マニュアルから探す場合、探している関数がどのカテゴリに属しているのか、分かりにくいことが多く、関数名にたどり着くのに結構面倒でした。以前は、Namazu などを使って、マニュアルをインデックス化して、検索して関数を探していたのですが、それでも探すのに関数名を入力する必要がありました。

PHP マニュアルの HTML ファイルのファイル名を見ると、関数名が直接ファイル名になっており、関数名が分かれば Vim スクリプトから呼び出すことができそうでしたので、man.vim を参考にして、実際に書いてみました。

Vim を使って PHP を書いている人はそれほど多くはないと思いますが、役に立つこともあるかもしれませんので、置いておきます。Vim スクリプトを書いたのは初めてですので、何か問題があるかもしれません。何か問題や気になった点などがありましたら、メールで指摘をお願いします。


目次

PHP マニュアルを表示する Vim スクリプト 目次

  1. 説明と環境
  2. 注意
  3. Download
  4. 必要なもの
  5. 使い方
    1. キーマップ(変更可)
    2. オプション設定
    3. 設定例
  6. 個人的な設定例
  7. 更新履歴

注意

RedHat Linux 7.3 と Gentoo Linux 1.4 などの Linux 環境でしかテストしていませんので、他の環境では問題があるかもしれません。また、Windows の Vim では動きません。

Windows では、chm 形式の PHP マニュアルがありますので、そちらを使用すると良いと思います。もし、一部文字化けなどが気になるようでしたら、少し古いかもしれませんが、PHP ユーザ会が配布している chm 形式のマニュアルを使用してください。

▲ 目次へ戻る


Download

以下からバージョンを選択してダウンロードしてください。

▲ 目次へ戻る


必要なもの

以下のコマンドが必要です。OS によっては、標準でインストールされていることが多いと思います。

▲ 目次へ戻る


使い方

Vim のプラグインディレクトリに置くか、:source phpmanual.vim で呼び出すことで使用できます。個人的には、~/.vim/ftplugin/ に置くと良いと思います。ソースの中にも、説明を書いておきましたので、そちらも参考にしてください。

phpmanual.vim を読み込んだら、Vim のコマンドラインで以下のコマンドを入力してください。

:PHPManual <PHP 関数名>

または、PHP の関数名の上で、\P と押すと、上部に新しいウインドウが開いて、該当のマニュアルが表示されます。

外部ブラウザを使用する場合は、以下のコマンドを実行してください。外部ブラウザの設定が行われていない場合は機能しません。

:PHPManualExtBrowser <PHP 関数名>

または、PHP の関数名の上で、\E を入力すると、外部ブラウザが開きます。

バージョン 1.1 からは、以下のようにいくつかのオプションを追加しました。

バージョン 1.3 でカラー表示に対応しました。

カラー表示が不要な場合は phpmanual_color = 0 を設定してください。

a. キーマップ(変更可)

b. オプション設定

~/.vimrc または、~/.vim/ftplugin/php.vim のように、ユーザ設定用のファイルを作成することで設定を変更できます。

let phpmanual_command         = 'PHPManual'
    プラグイン呼び出しの Vim コマンド名 ( デフォルト: PHPManual )

let phpmanual_mapname         = '<Leader>P'
    カーソルの下にある関数を引数にしてコマンドを呼び出すための
    キーマップ ( デフォルト: \P )

let phpmanual_use_ext_browser = 0
    0: 外部ブラウザは使用しません。(デフォルト)
    1: 外部ブラウザを使用します。

let phpmanual_ext_command     = 'PHPManualExtBrowser'
    外部ブラウザを呼び出すときの Vim コマンド名
    ( デフォルト : PHPManualExtBrowser )

let phpmanual_ext_mapname     = '<Leader>E'
    カーソルの下にある関数を引数にして外部ブラウザを呼び出すための
    キーマップ ( デフォルト: \E )

let phpmanual_ext_browser_cmd = 'mozilla'
    外部ブラウザの実行コマンド ( デフォルト: mozilla )

let phpmanual_man_site        = 'http://jp.php.net/'
    外部ブラウザから呼び出すサイト。
    ( デフォルト: http://jp.php.net/ )

  Note: 外部ブラウザからの呼び出しは、PHP の WEB サーバのトップに
        関数名を付けて呼び出す機能を使用しているため、
        PHP のミラーサーバ以外ではうまく表示されません。

let phpmanual_dir             = 'http://jp.php.net/manual/ja/print/'
    Vim のウインドウ分割から呼び出されるサイトです。
    またはローカルディレクトリも指定できます。
    ( デフォルト: http://jp.php.net/manual/ja/print/ )

  Note: 外部からマニュアルを取得するため、サイトの接続に時間が
        かかると、しばらく操作ができなくなりますので、ローカルに
        PHP マニュアルをダウンロードして、そのディレクトリを
        設定した方が良いです。

let phpmanual_file_ext        = 'php'
    取得するファイルの拡張子。PHP サーバにある PHP マニュアルは
    拡張子が php ですが、ダウンロードしたマニュアルは拡張子が
    html ですので、必要に応じて変更してください。

    php  : PHP マニュアルの拡張子が php (デフォルト)
    html : PHP マニュアルの拡張子が html

let phpmanual_convfilter      = 'iconv -c -f utf8 -t euc-jp'
    PHP マニュアルの文字コードは UTF-8 ですので、それを EUC に変換
    する必要があります。iconv の方がインストールされている可能性が
    高いので、デフォルトでは iconv にしました。

let phpmanual_htmlviewer      = 'w3m -T text/html'
    HTML をテキストに変換するツールとして w3m を使用します。
    標準入力から整形ができるように -T オプションを使用しています。

let phpmanual_color           = 1
    PHP マニュアルでカラー表示を行います。
    カラー表示が必要ない場合は 0 に設定してください。

c. 設定例

設定例として、.vimrc や、~/.vim/ftplugin/php.vim に記述することで、オプションの変更が可能です。.vimrc に記述してしまうと、Vim を起動すると不必要でも読み込まれてしまいますので、~/.vim/ftplugin/php.vim に記述した方が良いと思います。

let phpmanual_dir             = '/home/manual/php_manual/'
"    ローカルの /home/manual/php_manual/ にある PHP マニュアルを使用
"    するように設定します。

let phpmanual_file_ext        = 'html'
"    ローカルにある PHP マニュアルの拡張子は html であることを指定
"    します。

let phpmanual_use_ext_browser = 1
"    外部のブラウザを使用するように設定します。

let phpmanual_ext_browser_cmd = '~/bin/mozilla.sh'
"    外部ブラウザの呼び出しでは mozilla のラッパースクリプトを呼び出す
"    ように指定します。

let phpmanual_convfilter      = '/usr/local/bin/nkf -e'
"    文字コード変換に UTF-8 対応の nkf を使用するように設定します。

▲ 目次へ戻る


個人的な設定例

デフォルトでは、外部サーバの PHP マニュアルを読みに行きますので、ローカルに PHP マニュアルを置いた方が良いと思います。

個人的には、~/.vim/ftplugin/ に phpmanual.vim を置き、php.vim を作成して、設定を書き込んでいます。さらに、~/.vimrc に設定を加えて、PHP スクリプトを編集するときのみ、読み込まれるように設定しています。

" ~/.vimrc に記述
" 拡張子が inc や phtml の場合も PHP スクリプトとして扱うように設定
autocmd! BufRead,BufNewFile *.inc set filetype=php
autocmd! BufRead,BufNewFile *.phtml set filetype=php
" ~/.vim/ftplugin/php.vim に記述

" 外部ブラウザを使用する
let phpmanual_use_ext_browser = 1

" /home/manual/php_manual/ に PHP マニュアルを設置している場合
let phpmanual_dir             = "/home/manual/php_manual/"

" PHP マニュアルの拡張子は html
let phpmanual_file_ext        = "html"

" 外部ブラウザとして Mozilla を起動するためのラッパーシェルスクリプト
let phpmanual_ext_browser_cmd = "mozilla.sh"

" 文字コード変換に nkf を使用
let phpmanual_convfilter      = "nkf -e"

" w3m での整形時に幅を 100 文字に指定
let phpmanual_htmlviewer      = "w3m -T text/html -cols 100"

" phpmanual.vim を置いているパスを指定
source ~/.vim/ftplugin/phpmanual.vim

外部ブラウザとして、Mozilla を使用する場合、以下のようなシェルスクリプトを作成しておくと便利です。既に Mozilla を開いた状態の場合、タブに指定した URI を開くようにします。

#!/bin/sh

MOZILLA=/usr/bin/mozilla
RESULT=`$MOZILLA -remote "ping()" 2>&1`

if [ "$RESULT" ]; then
     exec $MOZILLA $1 &
else
     $MOZILLA -remote "openurl($1, new-tab)" &
fi

▲ 目次へ戻る


更新履歴

2005.02.20

  • バージョン 1.3 を公開しました
    • カラー表示に対応しました。

    • 1.1 以下の古いバージョンについては削除しました。

2004.07.30

  • バージョン 1.2 を公開しました。

2003.12.14

  • バージョン 1.0.1 と 1.1 を公開しました。
    • 全体的にドキュメントの書き直し、修正を行いました。

2003.07.13

  • 初版作成、公開。

▲ 目次へ戻る

LastUpdate: 2005-02-20 | メモ一覧 | HOME