vimとctagsでコードリーディング 公開用

16
2014/05 Vimとctagsでコードリーディング 勉強会LT

Upload: kenta-kase

Post on 24-May-2015

4.293 views

Category:

Software


1 download

DESCRIPTION

社内の勉強会LTで発表したスライド。 VimとctagsでCPANモジュールのコードを読む話です

TRANSCRIPT

Page 1: Vimとctagsでコードリーディング 公開用

2014/05

Vimとctagsでコードリーディング勉強会LT

Page 2: Vimとctagsでコードリーディング 公開用

自己紹介

✤ @Kesin11

✤ 大学:豊橋技術科学大学(愛知県)

✤ 研究:自然言語処理/音声言語処理

✤ 言語:Python

✤ 近未来予想

✤ 音声認識は実用的になる

✤ YouTubeでは講演で話されている情報を直接検索することが可能になる

Page 3: Vimとctagsでコードリーディング 公開用

コードリーディングをするときの悩み

✤ ある場所で呼ばれている関数やクラスが何をしているか確認したい

✤ いちいちモジュールのファイルを開くのがめんどくさい

✤ CPANモジュールはだいたい階層が深くなる

✤ EclipseのF3みたいな定義元にジャンプする機能無いの?

Page 4: Vimとctagsでコードリーディング 公開用

それ、Vimならctagsを使えば プラグインなくてもできるよ!

Page 5: Vimとctagsでコードリーディング 公開用

ctags

✤ 関数の定義場所などを記録したタグファイルを生成してくれる

✤ インストール

✤ CentOS

✤ yum ctags

✤ Mac

✤ brew ctags

✤ (OSX標準のctagsはBSD系なので使えないオプションがある)

Page 6: Vimとctagsでコードリーディング 公開用

ctags 使い方

✤ プロジェクトのルートディレクトリ上で$ ctags -R

✤ 再帰的に全てのソースを解析してtagsファイルを生成してくれる

✤ PerlだとCartonでモジュールを管理するので簡単

Page 7: Vimとctagsでコードリーディング 公開用

Vimでの操作

✤ :set tags=./tags

✤ デフォルトでカレントディレクトリのtagsを読むので通常は不要

✤ ジャンプ: <Ctrl + ]>

✤ 戻る: <Ctrl + t>

✤ 複数の候補から選択ジャンプ: g → <Ctrl + ]>

✤ ウィンドウ分割してジャンプ: <Ctrl + w> → <Ctrl + ]>

Page 8: Vimとctagsでコードリーディング 公開用

デモ

✤ cpanm ̶look SQL::Maker

✤ ctags -R

✤ vim

✤ Perlでの関数ジャンプ、モジュールジャンプ

Page 9: Vimとctagsでコードリーディング 公開用

ここからtips

Page 10: Vimとctagsでコードリーディング 公開用

便利なctagsオプション

✤ タグを出力するディレクトリの指定、tags以外の名前に変更

✤ ctags -f (今回はパス)

✤ 追記でタグを生成

✤ ctags -a

✤ タグを生成する言語を指定

✤ ctags ̶languages=Perl,JavaScript

✤ 対応している言語は--list-languagesで確認できる

Page 11: Vimとctagsでコードリーディング 公開用

tagsファイル自動生成

✤ プラグインを使う(使ったこと無いけど多分何かある)

✤ Gitのフックを使ってコミット時に自動生成

✤ $ vim .git/hooks/post-commit ←(chmod +xで実行権限を忘れずに)

✤ $ cd `git rev-parse ̶show-toplevel` ← gitで管理してるトップディレクトリに移動

✤ $ ctags -R local ← catronでインストールしたモジュールでtagsファイルを作り直し

✤ $ ctags -a -R lib ← 自分のAmon2のWebアプリをtagsに追記

Page 12: Vimとctagsでコードリーディング 公開用

ジャンプの代わりに垂直分割して開く

✤ 標準機能にはないが.vimrcに以下のコマンドを書くと可能

✤ map v<C-]> :vsp <CR>:exec("tag “.expand("<cword>"))<CR>

✤ 上の例だとv → Ctrl + ]で垂直分割して開く

Page 13: Vimとctagsでコードリーディング 公開用

標準ライブラリにもジャンプしたい

✤ perldoc -l CGIなどで標準ライブラリの場所を調べてctags

Page 14: Vimとctagsでコードリーディング 公開用

デモ

✤ ctags -a -R 標準ライブラリへのパス

✤ vim

Page 15: Vimとctagsでコードリーディング 公開用

Vim使ってないけど

✤ EmacsやSublime Textでもctagsは使えるらしい

✤ 他のエディタ界隈は全く知らないので、実際は何を使ってるのかツッコミお待ちしています

Page 16: Vimとctagsでコードリーディング 公開用

参考

✤ 実践Vim(書籍)

✤ ctagsを使ってVimでCode Readingを加速する

✤ http://labs.timedia.co.jp/2010/12/codereading-with-ctags-on-vim.html

✤ ctagsをちゃんと使う

✤ http://qiita.com/soramugi/items/7014c866b705e2cd0b95

✤ ctagsと連携するように環境を構築する

✤ http://qiita.com/soramugi/items/f918020c2b3f48c93bf3