Fork me on GitHub

2010/09/02

はてな
えーっと、IDE使ってません。ごめんなさい。
PerlをIDEで書いてる人、どれくらいいるんだろう。何使ってるんだろ。
私はLinuxでもWindowsでもVimを使ってます。Perlってサーバで使われる事が多いし、サーバだとsshで入る事が多いだろうし、まぁXの転送やVNCやそれっぽいのでグラフィカルに操作しても良いけど、正直PerlのドキュメントもテキストベースだしPerlで入力補完出来るグラフィカルエディタもまず無いと思ってる。

で、私がVim上で使ってるPerlの開発を「200倍便利にするスクリプト」を紹介。

perldoc.vim

perldocはPerlのオンラインマニュアルなんだけど、これを一々ターミナルに戻ったりして引いてると時間のロス。screenで分割して開いてもいいんだけどscreenの画面間移動よりもVim内でのウィンドウ間移動の方が操作感が統一出来てて良い。
そこで使ってるのがid:secondlifeさんが書いたperldoc.vim

hotchpotch's perldoc-vim at master - GitHub

Perldoc plugin for vim

http://github.com/hotchpotch/perldoc-vim
ドキュメントを引くにはPerldocコマンドを使います。関数openのドキュメントを引くには
:Perldoc -f open
とします。またモジュールAcme::Oppaiのドキュメントを引くには
:Perldoc Acme::Oppai
と実行します。 このスクリプトの良いと思う点は、補完が効くことです。「:Perldoc Acm」くらいまでタイプしてtabを押すと、「Acme::Oppai」や「Acme::Hidek」が補完されます。

ref.vim

もう一つ、同じ様にperldocが引けるプラグインとしてthincaさんが書いたrefがあります。
thinca's vim-ref at master - GitHub

Integrated reference viewer.

http://github.com/thinca/vim-ref
こちらはperldocに限らず
  • alc
  • erlang
  • man
  • perldoc
  • phpmanual
  • pydoc
  • refe
といったドキュメントを開く事が出来ます。ドキュメントを引くには
:Ref perldoc -f open
:Ref perldoc Acme::Oppai
等と実行します。
perldoc-vim
こちらも補完が効きますが、refはモジュール検索の際、あり得るモジュール全てが補完されてしまう為、ネームスペースにわんさかモジュールがあると少しモタつきます。なので私はperldoc.vimを使ってます。

追記
thincaさんから某所でコメント貰った。
let g:ref_perldoc_complete_head = 1
でそれっぽい事出来るらしい。

perlcompletion.vim

Perlは結構(かなり?)文法制限の緩い言語だと思ってますが、これが災いしてかIDE等でPerlの入力補完が出来る物は殆どありません。そんな中c9sさんがVimのomni補完でPerlの入力補完をしてくれるスクリプトを書いてくれています。
c9s's perl-completion.vim at master - GitHub

perl omnicompletion for vim (including base class function compleltions .. etc)

http://github.com/c9s/perl-completion.vim
これ、ぜひ実際に試して欲しいのですが
use Acme::O
までタイプして<c-x><c-o>(CTRL-x CTRL-o)をタイプすると
perl-completion-vim1
どどーーーん!
さらに
perl-completion-vim2
Moooooooooooooooooooseな補完や
perl-completion-vim3
変数の補完。そして
perl-completion-vim4
モジュールのメンバまで補完してくれます。キャーすてきー!
すばらし過ぎます。ちなみにこのperl-completion.vimのwin32対応と、上で紹介したperldoc.vimの補完部分を担当させて頂きました。

2010年はPerlが熱い!そう思ってます。ぜひインストールして活用して見てください。200倍とは言い過ぎかもしれませんが、間違いなく2倍にはなりますよ。

初めてのPerl 第5版 初めてのPerl 第5版
Randal L. Schwartz
オライリージャパン / ¥ 3,780 (2009-10-26)
 
発送可能時間:在庫あり。


モダンPerl入門 (CodeZine BOOKS) モダンPerl入門 (CodeZine BOOKS)
牧 大輔
翔泳社 / ¥ 2,940 (2009-02-10)
 
発送可能時間:在庫あり。

Posted at 00:15 in ソフトウェア::lang::perl
Tagged as: perl, vim
Bookmarks: add to hatena add to hatena | add to delicious.com | add to livedoor.clip add to livedoor.clip

2010/08/30

はてな
RubyKaigiの一部として開催されてVimKaigi、なかなか面白そうでした。
Vimmerもだんだん増えてきました。plugin使ってる人も多い様です。実は私はあまりpluginの使用に依存しない様に心がけていたりするんですが、中にどうしても手放せない物があり、その中の一つがquickrun.vimだったりします。
thinca's vim-quickrun at master - GitHub

Run commands quickly.

http://github.com/thinca/vim-quickrun

続きを読む...

Posted at 22:51 in ソフトウェア::vim
Tagged as: vim
Bookmarks: add to hatena add to hatena | add to delicious.com | add to livedoor.clip add to livedoor.clip

2010/08/10

はてな
便利
" copy this 'git.vim' to ~/.vim/after/ftplugin/git.vim

0r!curl -http://whatthecommit.com/index.txt
な訳ない。

ちなみに、この「What The Commit」ってサイト、「Useful Text」とか「clarify further the brokenness of C++. why the fuck are we using C++?」とか「Spinning up the hamster...」とかオモロいメッセージいっぱい入ってる。

追記 2010/08/27
コメント欄で http://whatthecommit.com/index.txt でプレインテキストなメッセージが得られる事を教えて頂きました。感謝。
Posted at 01:09 in ソフトウェア::vim
Tagged as: commit, vim
Bookmarks: add to hatena add to hatena | add to delicious.com | add to livedoor.clip add to livedoor.clip

2010/06/26

はてな
まず、ちょっとタイトルがおかしいので、最後まで読んで下さい。

WindowsのVimを使っている方ならば、KaoriYaのVimを使っておられる方が多いと思います。
KaoriYa.net

Vim 7.2 Vim 7.2を公開します。vim.org等で配布されるオリジナルに、日本語を扱う上で便利な設定やスクリプトが追加されています。Vimはユーザーの方々からの意見などの支援によって育てら...

http://www.kaoriya.net/
KaoriYaが配布しているVimには複数のpatchが当たっていて、migemo検索やフルスクリーンといった便利な機能が入っています。
その中の一つに、modelineの中でfileencodingが指定出来るという物があります。
Vimでは、ファイルのエンコーディングを調べるのにfileencodingsで指定された複数のエンコーディングを失敗しなくなるまで試すという、若干きな粉臭い手法が用いられているのです。ですので例えばファイル内書かれているバイトコードとエンコーディングがサポートする領域によっては誤認識する事もあります。例えばWindowsのCP932等は、サポートする範囲が広いので文字数が少ないとEUC-JPと誤爆する事もあります。
これを解決する為に、ファイル単位で設定を指定出来るmodelineという設定行にfileencoding(fenc)を指定出来るというpatchをKoRoNさんが書きました。
実はこれ、KaoriYaにこのパッチが入る数年前に別のpatchとしてvim-devに送った事があり、その時は「うーん」とBram氏に言われて終わってしまった機能です。

KaoriYaでないVimを使っている場合、modelineにfenc指定があると読み込んだファイルに対してfileencodingを変更する...という動きになってしまい、ファイルが更新されたという扱いになってしまいます。もちろんそのエンコーディングでファイルが開かれる訳でもありません。
このKaoriYa仕様に慣れてしまった方が、modeline内fencを指定したファイルを世に配ってしまう事があります。
そしてそのファイルをKaoriYa仕様でないVimを使っている人が開くと、開いた途端にファイルが更新される...というとても悲しい結末になってしまいます。

今日はその問題を解決するプラグインを書きました。

mattn's modelinefenc-vim at master - GitHub

enable to specify 'fenc' in modeline.

http://github.com/mattn/modelinefenc-vim
これをpluginフォルダにインストールすると、KaoriYa仕様のVimと同じように(modeline内fencに関してだけ)動作します。ファイルを書いた人がmodelineに指定したエンコーディングの通りファイルが表示されます。

KaoriYa仕様でないVimmerには便利かなと思います。ただし、1点守って下さい。

このプラグインでmodeline内にfencを指定出来る様になったはいいのですが、それが指定されているファイルはバラまかないで下さい。
Vimは世界中で使われているテキストエディタです。KaoriYa版でない人、modelinefenc-vimを入れてない人は星の数ほどいます。
あくまで、そんなファイルを開いた時に気持ち悪くなりたくない...という人向けの機能です。

ですのでタイトルは「modeline内でfencを指定されたファイルを開いてイヤーンとならないVimプラグイン書いた。」が正解です。
Posted at 23:25 in ソフトウェア::vim
Tagged as: kaoriya, vim
Bookmarks: add to hatena add to hatena | add to delicious.com | add to livedoor.clip add to livedoor.clip