vim-ref は phpmanual 等のリファレンスをvim上で見るためのプラグインです。ちなみにデフォルトでは phpmanual は見れませんので対応方法をまとめておきます。
thinca/vim-ref – GitHub
追記: 最終的には解決しております。一番最後に結果の .vimrc がありますのでご覧ください。
インストール手順
vim-ref を普通にインストール。その後、PHP: Download documentation より Many HTML files をダウンロードして好きな場所に置く。
多分中身にはたくさんのファイルが入っている状況です。そのディレクトリを .vimrc で以下のように指定します。私の環境では g:ref_phpmanual_cmd も設定しないと読み込まれませんでした。
1 2 | let g:ref_phpmanual_path = '/path/php-chunked-xhtml/' let g:ref_phpmanual_cmd = 'w3m -dump %s' |
また w3m もインストールしておきます。
1 | sudo port install w3m |
これで調べたい関数の上で <S-k> (Shift 押しながら K を押す)するとウィンドウが分割されてマニュアルが見れるはずですが、私の場合はウィンドウが分割されて以下のようなテキストが表示されました。
1 2 | com.examples.foreach control_structures.foreach |
非常に残念です。
1 | w3m 'http://google.com/' |
としたら正常に見れたところ w3g がおかしいわけではないようです。
ちなみに、以下のコマンドで処理の流れを見れるようですが意味わかりませんでした。
1 | :99verbose Ref phpmanual foreach |
以下、vim-ref を設定する時に参考にさせて頂いた記事です。
追記: w3m はどうやら vim から使えない状態でした
人によるとは思いますが、普通にインストールしただけでは vim 経由で w3m を使えないようです。先ほどインストールしました w3m の場所を調べたところ /opt/local/bin にあるようです。そのためここにパスを通します。
Vim から PATH を変更したい場合は、let $PATH = $PATH . ‘:/opt/local/bin’ で追加できるというアドバイスを頂きました。ありがとうございます。これでなんとか vim 経由で w3m が使えるようになりました。
追記: vim-ref が使えるようになりました
thinca 様とsplhack 様にアドバイス頂き解決に至りました。ありがとうございます。主な作業や調査内容などは全てコメント欄にありますのでご覧ください。
結果的に .vimrc に必要だった設定は以下です。
1 2 | let g:ref_phpmanual_path = '/path/php-chunked-xhtml/' let $PATH = $PATH . ':/opt/local/bin' |
thincaさんのコメント
複数の候補がある場合は、候補の一覧を表示する仕様になっています。
見たい候補の上で を押してみてください。
webleさんのコメント
アドバイスありがとうございます。候補の上で、return ですかね、押したら !man に飛んでしまいました。w3m しかインストールしていないんですが…これは諦めるしかない動作ですかね…。
thincaさんのコメント
すいませんが、候補の上で
を実行するとどうなるでしょう?
多分エラーが出ると思うので、エラーの内容を教えて頂けると助かります。
また、
この件ですが、この変数は最初に :Ref コマンドを実行した際に設定されていなければ初期値が設定されます。Vim の起動直後には存在しません。
それとも、実行後にも設定されなかった、と言うことでしょうか?
webleさんのコメント
以上の結果はこちらのキャプチャとなっております。
こちらについてはこちらのキャプチャのように phpmanual が読み込まれなくなってしまいます。
thincaさんのコメント
原因はわかりませんが、どうやら、b:ref_source が消えている感じですね。
念のため確認ですが、候補の表示された ref バッファで
として値は表示されますか? また、ref バッファのバッファ名はどうなっていますか?
> phpmanual が読み込まれなくなってしまいます。
その時 g:ref_phpmanual_cmd の値はどうなっていますか?
空になっている場合は、Vim が w3m を見つけられていません。
w3m は Vim から見える形でインストールされていますか?
は 1 になりますか? ならない場合は、手動での設定が必要になります。
webleさんのコメント
:echo b:ref_source とさせて頂きましたところ、結果は以下のようでした。
また :echo bufname(‘%’) としたところ何も起こりませんでした。
phpmanual が読み込まれなくっている件ですが、:echo g:ref_phpmanual_cmd ところ何も起こりませんでしたので、w3m は普通にインストールした後何か作業を行って vim から見れるようにする必要があったのでしょうか。
確かに今 terminal から w3m ‘http://www.google.com’ とやったら見れたのに対し、vim で :!w3m ‘http://www.google.com’ とやっても見ることはできませんでした。こちらについても解決しなければいけません。
thincaさんのコメント
ref バッファがうまく作られてませんね…。
試しに、ref.vim 以外のプラグインや設定を無効にして試してもらえないでしょうか?
で起動した後、pathogenなどを使用している場合は
として、(pathogenを使ってない場合は無視してください)
で ref.vim のみをロードできます。
あとは
をして、この状態で使えるか試してください。もし使えた場合は、vimrc か他のプラグインが悪さをしている可能性があります。
w3m については、環境変数 $PATH を確認してください。ターミナルで動くということは、ターミナルでの $PATH と Vim での $PATH が異なっている可能性が高いです。
ターミナルでも Vim でも
で確認できます。
webleさんのコメント
このような無知な私にこれだけのアドバイスを頂き大変感謝しております。
さっそくですが vim -u NONE -N と実行したところエラーが出て起動ができませんでした。vim とすれば通常通り vim は起動します。私の方は zsh と bash を使用しておりますが、何か特殊なコマンドなのでしょうか…申し訳ありません。
また w3m は /opt/local/bin/ にあったのを確認しました、また echo $PATH をしたところこちらのディレクトリが登録されていなかったため、勝手が分からないのですが以下のようにしてみましたが、これでは追加ができないですね。
こうしたあと再び echo $PATH としても何も変化無しでした。
問題を解決するための操作で問題が起こっており申し訳ないです。
webleさんのコメント
$PATH の変更は無事完了致しました。ご迷惑おかけしました。
thincaさんのコメント
> vim -u NONE -N と実行したところエラーが出て起動ができませんでした。
おかしいですね。vim が実行できるならエラーが出るようなコマンドじゃないんですが…。
エラーの内容を教えてください。
webleさんのコメント
エラーというかヘルプ的なものが出てしまいます。
のような感じとなっております。
thincaさんのコメント
vim を open に alias したりしてないでしょうか?
webleさんのコメント
thinca 様
splhack 様
申し訳ありません。以前 vim を terminal から使いやすくするために以下のような物を入れていました。
これを解除させて頂きまして thinca 様コメントを参考に vim-ref プラグインのみを読み込んだところ普通に動きました。
しかし、この後普通に vim を起動したところ普通に :Ref phpmanual foreach でマニュアルを見ることができました!
解決になった操作は分かりませんが、 alias が個人的には問題になっていたと思うのですがいかがでしょうか。
後で記事にも追記しますが vim-ref の設定は以下を追加しただけの状態となっています。
ここまでいろいろと解決までアドバイス頂き大変ありがとうございました!vim が今までよりも大好きになりました!それと自分勝手な alias はあまり入れず、なるべく vim なら vim で対応するように心がけます、alias が問題なのかどうか分からないのですが…。
splhackさんのコメント
もしくは
http://code.google.com/p/macvim-kaoriya/wiki/Readme#コンソールからの使用
にあるmvimを使うと便利です。
kwmksjさんのコメント
which vimの実行結果が/usr/bin/vimになっていませんか?
もしこうなっている場合はMacVimへのパスが通っておらず起動しているのはMacVimではないのだと思います。
MacVimとMacに最初から入っているVimは別もので、
MacVimのインストール先が、/Applications/MacVim.appなどである場合は、/Applications/MacVim.app/Contents/MacOsへパスを通す必要があったはずです(うろ覚え…)