moribiru97のブログ

WEB系のプログラミングとかミドルウェアのメモ書きとかとか...

続:Perlのサブルーチン定義元を求めて・・・

 

Perlのサブルーチン定義元を求めて・・・ - moribiru97のブログ

 

ありました。ありましたよ!!

最近ジョインした職場のperl猛者達に聞いてみると、やはりどんぴしゃな奴がおりました。(まぁそうですよねあるに決まってますよね笑)

 

Ctags(Exuberant Ctags)というタグ生成ツールと、Vimのタグジャンプ機能を組み合わせてEclipseのようにクラスなどの定義元へジャンプする事が出来るそうでござんす。

対応してる言語はLanguages Supported by Exuberant Ctagsこんな感じ。

メジャーどころは一通り対応してるみたいですね。聞いた事無い言語もちらほら。

 

インストール

macには元々Ctagsが入っているようですがBSD版でショボイらしいので入れ直します。

brew install ctags

 

とりあえずジャンプしてみる

ジャンプまでの流れはこんな感じ

 

  • タグ作る
  • vimで読む
  • パッケージ名などをフォーカスしてCtrl + ]
タグ生成

perlのソースが入っているディレクトリに入って

ctags -R

するとカレントにtagsファイルが生成される。

-Rオプションで再起的にたどってくれるようやで。

 

vimで読む

カレントディレクトリにtagsファイルがあれば勝手に読んでくれる。

set tagsで指定してもOK。

飛ぶ

飛びたいパッケージ等にフォーカスしてCtrl+]でジャンプ、Ctrl+tで戻る。

Ctrl+wを押してから]で スプリットしてジャンプ。(vsで開くやり方は見当たらなかった)

vim7.3だとパッケージ区切りの「::」を認識してくれず、ヴィジュアルモードでパッケージ名をすべて選択しないと正常に飛んでくれずやきもきしていたが、7.4にしたところちゃんと動いてくれた模様。

 

今まで真剣にvim使った事無かったけど、やりたいと思った事は大体なんでも出きるんですね。コアなファンがいるのも頷けます。

 

Perlのサブルーチン定義元を求めて・・・

仕事の関係上Perl勉強し始めたモリビルです。

元々Java/Eclipseで開発してましたが、クラスとかメソッドの定義にジャンプしてくれる機能はよくつかってました。

perlだとどうするんやろか、vimのpluginにそんな感じのやつがあるのかしら。と思ったけど見つからず。

微妙に求めてるものとは違うけど、どうやらDevel::Sub::Whichというモジュールを使って調べる事が出来るらしい。

 


Perl においてサブルーチンがどのパッケージで定義されているのかを調べる方法 - ひだまりソケットは壊れない

 

一先ずこの方法で確認できるということが分かっただけでも収穫だが、どうにかvim上で簡単にやりたい。

これやりたい人って結構いると思うんだけどなかなか見つからないので、難しいorできないのかな・・・。

引き続きちょくちょく探しつつも暫くはDevel::Sub::Whichでいこうと思う。

file_outputのbufferサイズを大きくする

td-agent.conf

buffer_chunk_limit 500000000

fluentdで収集した各サーバのログをそのまま素のファイルでダウンロード出来るようにしたかったので、tagomorisさんの作ったfile-alternativeを使ってみた。
が、file_outのappendオプションが無くbufferの上限でrotateされてしまうため、そのままダウンロードしようとすると複数ファイルを個別にダウンロードする羽目になってしまう。
この為にpluginを書くのもどうかと思ったので調べたところ、「buffer_chunk_limit」を大きくしておけばappend trueにしたときと挙動は同じような感じになるっぽい。

はじめましてみなさん

ブログ始めました

moribiru97です。

主にweb系のプログラミング・OSSクラウド関連について、メモ書きとかゆるい感じで綴っていこうかと思ってます。

直近だとOpenstackとかDockerとかその辺をさわりながら、周辺技術や時々脱線なんかも含めて思い立った時にぼちぼち書いて行く予定です。

 

仕事ではWebアプリケーションの開発から入り、社内向けフレームワークの保守とかDeploy等の周辺ツールを提供したりとかミドルウェアの構築なんかをする社内プラットフォーム支援業務を経て、今はJavaを利用した社内向けの軽量Webフレームワーク開発や新規事業のロンチに関わるお仕事をしております。

WEBエンジニアとして働き始めた当初これ買ったらモテるやろ!と思ってオライリーのAntの本を買ったりしましたが、残念ながら未だに実を結んではいません。

なので本ブログを通じてモテたいです:)

 

 そいでは今後ともよろしくお願いします

ノシ