Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
2014/05
Vimとctagsでコードリーディング
勉強会LT
自己紹介
✤ @Kesin11
✤ 大学:豊橋技術科学大学(愛知県)
✤ 研究:自然言語処理/音声言語処理
✤ 言語:Python
✤ 近未来予想
✤ 音声認識は実用的になる
✤ YouTubeでは講演で話されている情報を直接検索することが可能...
コードリーディングをするときの悩み
✤ ある場所で呼ばれている関数やクラスが何をしているか
確認したい
✤ いちいちモジュールのファイルを開くのがめんどくさい
✤ CPANモジュールはだいたい階層が深くなる
✤ EclipseのF3みたいな定義...
それ、Vimならctagsを使えば
プラグインなくてもできるよ!
ctags
✤ 関数の定義場所などを記録したタグファイルを生成してくれる
✤ インストール
✤ CentOS
✤ yum ctags
✤ Mac
✤ brew ctags
✤ (OSX標準のctagsはBSD系なので使えないオプションがある)
ctags 使い方
✤ プロジェクトのルートディレクトリ上で

$ ctags -R
✤ 再帰的に全てのソースを解析してtagsファイルを生成して
くれる
✤ PerlだとCartonでモジュールを管理するので簡単
Vimでの操作
✤ :set tags=./tags
✤ デフォルトでカレントディレクトリのtagsを読むので通常は不要
✤ ジャンプ: <Ctrl + ]>
✤ 戻る: <Ctrl + t>
✤ 複数の候補から選択ジャンプ: g → <Ctr...
デモ
✤ cpanm ̶look SQL::Maker
✤ ctags -R
✤ vim
✤ Perlでの関数ジャンプ、モジュールジャンプ
ここからtips
便利なctagsオプション
✤ タグを出力するディレクトリの指定、tags以外の名前に変更
✤ ctags -f (今回はパス)
✤ 追記でタグを生成
✤ ctags -a
✤ タグを生成する言語を指定
✤ ctags ̶languages=P...
tagsファイル自動生成
✤ プラグインを使う(使ったこと無いけど多分何かある)
✤ Gitのフックを使ってコミット時に自動生成
✤ $ vim .git/hooks/post-commit ←(chmod +xで実行権限を忘れずに)
✤ $ ...
ジャンプの代わりに垂直分割して開く
✤ 標準機能にはないが.vimrcに以下のコマンドを書くと
可能
✤ map v<C-]> :vsp <CR>:exec("tag .expand("<cword>"))<CR>
✤ 上の例だとv → Ctr...
標準ライブラリにもジャンプしたい
✤ perldoc -l CGIなどで標準ライブラリの場所を調べて
ctags
デモ
✤ ctags -a -R 標準ライブラリへのパス
✤ vim
Vim使ってないけど
✤ EmacsやSublime Textでもctagsは使えるらしい
✤ 他のエディタ界隈は全く知らないので、実際は何を使っ
てるのかツッコミお待ちしています
参考
✤ 実践Vim(書籍)
✤ ctagsを使ってVimでCode Readingを加速する
✤ http://labs.timedia.co.jp/2010/12/codereading-with-ctags-on-vim.html
✤ c...
Próxima SlideShare
Cargando en…5
×

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

11.103 visualizaciones

Publicado el

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

Publicado en: Software
  • Sé el primero en comentar

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

×