Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Loading in …3
×
1 of 16

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

10

Share

Download to read offline

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

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

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

  1. 1. 2014/05 Vimとctagsでコードリーディング 勉強会LT
  2. 2. 自己紹介 ✤ @Kesin11 ✤ 大学:豊橋技術科学大学(愛知県) ✤ 研究:自然言語処理/音声言語処理 ✤ 言語:Python ✤ 近未来予想 ✤ 音声認識は実用的になる ✤ YouTubeでは講演で話されている情報を直接検索することが可能になる
  3. 3. コードリーディングをするときの悩み ✤ ある場所で呼ばれている関数やクラスが何をしているか 確認したい ✤ いちいちモジュールのファイルを開くのがめんどくさい ✤ CPANモジュールはだいたい階層が深くなる ✤ EclipseのF3みたいな定義元にジャンプする機能無い の?
  4. 4. それ、Vimならctagsを使えば プラグインなくてもできるよ!
  5. 5. ctags ✤ 関数の定義場所などを記録したタグファイルを生成してくれる ✤ インストール ✤ CentOS ✤ yum ctags ✤ Mac ✤ brew ctags ✤ (OSX標準のctagsはBSD系なので使えないオプションがある)
  6. 6. ctags 使い方 ✤ プロジェクトのルートディレクトリ上で
 $ ctags -R ✤ 再帰的に全てのソースを解析してtagsファイルを生成して くれる ✤ PerlだとCartonでモジュールを管理するので簡単
  7. 7. Vimでの操作 ✤ :set tags=./tags ✤ デフォルトでカレントディレクトリのtagsを読むので通常は不要 ✤ ジャンプ: <Ctrl + ]> ✤ 戻る: <Ctrl + t> ✤ 複数の候補から選択ジャンプ: g → <Ctrl + ]> ✤ ウィンドウ分割してジャンプ: <Ctrl + w> → <Ctrl + ]>
  8. 8. デモ ✤ cpanm ̶look SQL::Maker ✤ ctags -R ✤ vim ✤ Perlでの関数ジャンプ、モジュールジャンプ
  9. 9. ここからtips
  10. 10. 便利なctagsオプション ✤ タグを出力するディレクトリの指定、tags以外の名前に変更 ✤ ctags -f (今回はパス) ✤ 追記でタグを生成 ✤ ctags -a ✤ タグを生成する言語を指定 ✤ ctags ̶languages=Perl,JavaScript ✤ 対応している言語は--list-languagesで確認できる
  11. 11. 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に追記
  12. 12. ジャンプの代わりに垂直分割して開く ✤ 標準機能にはないが.vimrcに以下のコマンドを書くと 可能 ✤ map v<C-]> :vsp <CR>:exec("tag .expand("<cword>"))<CR> ✤ 上の例だとv → Ctrl + ]で垂直分割して開く
  13. 13. 標準ライブラリにもジャンプしたい ✤ perldoc -l CGIなどで標準ライブラリの場所を調べて ctags
  14. 14. デモ ✤ ctags -a -R 標準ライブラリへのパス ✤ vim
  15. 15. Vim使ってないけど ✤ EmacsやSublime Textでもctagsは使えるらしい ✤ 他のエディタ界隈は全く知らないので、実際は何を使っ てるのかツッコミお待ちしています
  16. 16. 参考 ✤ 実践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

×