Submit Search
Vimとctagsでコードリーディング 公開用
10 likes
12,327 views
Kenta Kase
社内の勉強会LTで発表したスライド。 VimとctagsでCPANモジュールのコードを読む話です
Software
Read more
1 of 16
Download now
Downloaded 17 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
More Related Content
PDF
Phpのレガシーコードをrubyで焼き変えてみた
Akira Kaneda
PDF
とりあえずこれだけ知っていればお仕事ができる(であろう)gitガチ入門
infinite_loop
PDF
OSS Study#19_LT
NaoY-2501
PDF
Frank-afcproxy
Toshiyuki Terashita
PDF
Webフレームワークパネル(Django) at PyConJP 2012
makoto tsuyuki
PDF
Tortoise gitで日本語ファイル名を使うときのgitの選択について
Kiyoshi SATOH
PDF
言語処理するのに Python でいいの? #PyDataTokyo
Shuyo Nakatani
PPTX
今時のバンド
Ryu Seino
Phpのレガシーコードをrubyで焼き変えてみた
Akira Kaneda
とりあえずこれだけ知っていればお仕事ができる(であろう)gitガチ入門
infinite_loop
OSS Study#19_LT
NaoY-2501
Frank-afcproxy
Toshiyuki Terashita
Webフレームワークパネル(Django) at PyConJP 2012
makoto tsuyuki
Tortoise gitで日本語ファイル名を使うときのgitの選択について
Kiyoshi SATOH
言語処理するのに Python でいいの? #PyDataTokyo
Shuyo Nakatani
今時のバンド
Ryu Seino
What's hot
(20)
PDF
ニコニコ生放送のタイムシフトを無料で保存する方法
tani-page
PDF
ニコニコ生放送のタイムシフトを無料で保存する方法
tani-page
PPTX
Pynyumon03 LT
drillan
PDF
Hubotで遊ぶ
treby
PDF
F*言語ワークショップ
TakuKitamura1
PDF
Trend Micro CTF Asia Pacific & Japan -defensive100-
boropon
PPTX
Slack + Hubot でお前の一番好きな二次元嫁キャラと一緒に仕事をする
sairoutine
PPTX
SECCON2014 crypt200
boropon
PPT
オープンソースカンファレンス名古屋「高蔵寺SE勉強会」
mick
PDF
プロ生ちゃんbotを作ろう!
treby
PPTX
Pythonで書くじゃんね!
Kiminori Kato
PDF
Goとtest coverage
nakaji-s
PPTX
Stapy#22 LT
NaoY-2501
PDF
libpgenでパケット操作
slankdev
PDF
俺とDockerとtDiaryとkubernetes
Masayuki KaToH
PDF
PyLadies Tokyo 二周年記念パーティ LT
Tetsuya Morimoto
PPTX
仕事でも Groovy を使おう!
Oda Shinsuke
PDF
LT: 今日帰ってすぐに始められるPython #nds45
civic Sasaki
PPTX
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Katsuhiro Morishita
PDF
gopherと学ぶgolang ~go fmt編~
nakaji-s
ニコニコ生放送のタイムシフトを無料で保存する方法
tani-page
ニコニコ生放送のタイムシフトを無料で保存する方法
tani-page
Pynyumon03 LT
drillan
Hubotで遊ぶ
treby
F*言語ワークショップ
TakuKitamura1
Trend Micro CTF Asia Pacific & Japan -defensive100-
boropon
Slack + Hubot でお前の一番好きな二次元嫁キャラと一緒に仕事をする
sairoutine
SECCON2014 crypt200
boropon
オープンソースカンファレンス名古屋「高蔵寺SE勉強会」
mick
プロ生ちゃんbotを作ろう!
treby
Pythonで書くじゃんね!
Kiminori Kato
Goとtest coverage
nakaji-s
Stapy#22 LT
NaoY-2501
libpgenでパケット操作
slankdev
俺とDockerとtDiaryとkubernetes
Masayuki KaToH
PyLadies Tokyo 二周年記念パーティ LT
Tetsuya Morimoto
仕事でも Groovy を使おう!
Oda Shinsuke
LT: 今日帰ってすぐに始められるPython #nds45
civic Sasaki
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Katsuhiro Morishita
gopherと学ぶgolang ~go fmt編~
nakaji-s
Ad
Similar to Vimとctagsでコードリーディング 公開用
(20)
PDF
KMC Font Project 3 - FontForgeで欧文書体製作
k maztani
PDF
20130824 Lightweight Language "Go" @LL matsuri
Yoshifumi Yamaguchi
KEY
Windowsにpythonをインストールしてみよう
Kenji NAKAGAKI
PDF
ML system design_pattern
yusuke shibui
PDF
Python界隈の翻訳プロジェクト
Tetsuya Morimoto
PPTX
やさしいGitの内部構造 - yapcasia2013
DQNEO
PDF
Python & PyConJP 2014 Report
gree_tech
PPTX
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Takuya Nishimoto
PDF
Lombok ハンズオン
Hiroto Yamakawa
PDF
Django から各種チャットツールに通知するライブラリを作った話
Yusuke Miyazaki
PDF
密着!わたしのコンソールアプリ開発環境
Fumihito Yokoyama
PDF
CPythonを読もう
Akira Nonaka
PDF
TwYM
Kuniaki Igarashi
PDF
今日から始めるGopher - スタートGo #0 @GDG名古屋
Takuya Ueda
PPT
appengine活用事例資料@TDDBC札幌2.1
Go Sueyoshi (a.k.a sue445)
PPTX
俺と otoya
Masayuki KaToH
PPTX
Ll tiger clojure
Toshiaki Maki
PDF
Django で始める PyCharm 入門
kashew_nuts
PPT
Koi::Bana〜恋に落ちたエンジニア〜
Munenori Sugimura
PPTX
Emscriptenと不思議のダンジョン
兎 伊藤
KMC Font Project 3 - FontForgeで欧文書体製作
k maztani
20130824 Lightweight Language "Go" @LL matsuri
Yoshifumi Yamaguchi
Windowsにpythonをインストールしてみよう
Kenji NAKAGAKI
ML system design_pattern
yusuke shibui
Python界隈の翻訳プロジェクト
Tetsuya Morimoto
やさしいGitの内部構造 - yapcasia2013
DQNEO
Python & PyConJP 2014 Report
gree_tech
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Takuya Nishimoto
Lombok ハンズオン
Hiroto Yamakawa
Django から各種チャットツールに通知するライブラリを作った話
Yusuke Miyazaki
密着!わたしのコンソールアプリ開発環境
Fumihito Yokoyama
CPythonを読もう
Akira Nonaka
TwYM
Kuniaki Igarashi
今日から始めるGopher - スタートGo #0 @GDG名古屋
Takuya Ueda
appengine活用事例資料@TDDBC札幌2.1
Go Sueyoshi (a.k.a sue445)
俺と otoya
Masayuki KaToH
Ll tiger clojure
Toshiaki Maki
Django で始める PyCharm 入門
kashew_nuts
Koi::Bana〜恋に落ちたエンジニア〜
Munenori Sugimura
Emscriptenと不思議のダンジョン
兎 伊藤
Ad
Vimとctagsでコードリーディング 公開用
1.
2014/05 Vimとctagsでコードリーディング 勉強会LT
2.
自己紹介 ✤ @Kesin11 ✤ 大学:豊橋技術科学大学(愛知県) ✤
研究:自然言語処理/音声言語処理 ✤ 言語:Python ✤ 近未来予想 ✤ 音声認識は実用的になる ✤ YouTubeでは講演で話されている情報を直接検索することが可能になる
3.
コードリーディングをするときの悩み ✤ ある場所で呼ばれている関数やクラスが何をしているか 確認したい ✤ いちいちモジュールのファイルを開くのがめんどくさい ✤
CPANモジュールはだいたい階層が深くなる ✤ EclipseのF3みたいな定義元にジャンプする機能無い の?
4.
それ、Vimならctagsを使えば プラグインなくてもできるよ!
5.
ctags ✤ 関数の定義場所などを記録したタグファイルを生成してくれる ✤ インストール ✤
CentOS ✤ yum ctags ✤ Mac ✤ brew ctags ✤ (OSX標準のctagsはBSD系なので使えないオプションがある)
6.
ctags 使い方 ✤ プロジェクトのルートディレクトリ上で $
ctags -R ✤ 再帰的に全てのソースを解析してtagsファイルを生成して くれる ✤ PerlだとCartonでモジュールを管理するので簡単
7.
Vimでの操作 ✤ :set tags=./tags ✤
デフォルトでカレントディレクトリのtagsを読むので通常は不要 ✤ ジャンプ: <Ctrl + ]> ✤ 戻る: <Ctrl + t> ✤ 複数の候補から選択ジャンプ: g → <Ctrl + ]> ✤ ウィンドウ分割してジャンプ: <Ctrl + w> → <Ctrl + ]>
8.
デモ ✤ cpanm ̶look
SQL::Maker ✤ ctags -R ✤ vim ✤ Perlでの関数ジャンプ、モジュールジャンプ
9.
ここからtips
10.
便利なctagsオプション ✤ タグを出力するディレクトリの指定、tags以外の名前に変更 ✤ ctags
-f (今回はパス) ✤ 追記でタグを生成 ✤ ctags -a ✤ タグを生成する言語を指定 ✤ ctags ̶languages=Perl,JavaScript ✤ 対応している言語は--list-languagesで確認できる
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.
ジャンプの代わりに垂直分割して開く ✤ 標準機能にはないが.vimrcに以下のコマンドを書くと 可能 ✤ map
v<C-]> :vsp <CR>:exec("tag .expand("<cword>"))<CR> ✤ 上の例だとv → Ctrl + ]で垂直分割して開く
13.
標準ライブラリにもジャンプしたい ✤ perldoc -l
CGIなどで標準ライブラリの場所を調べて ctags
14.
デモ ✤ ctags -a
-R 標準ライブラリへのパス ✤ vim
15.
Vim使ってないけど ✤ EmacsやSublime Textでもctagsは使えるらしい ✤
他のエディタ界隈は全く知らないので、実際は何を使っ てるのかツッコミお待ちしています
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
Download