Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Vim script 静的解析の光と闇
Search
Kuniwak
PRO
August 22, 2015
Programming
8
2.1k
Vim script 静的解析の光と闇
YAPC:Asia 2015 の LT Day2 の発表です。
http://yapcasia.org/2015/
Kuniwak
PRO
August 22, 2015
Tweet
Share
More Decks by Kuniwak
See All by Kuniwak
DeNA での思い出 / Memories at DeNA
orgachem
PRO
6
2.6k
それ CLI フレームワークがなくてもできるよ / Building CLI Tools Without Frameworks
orgachem
PRO
18
4.2k
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
4
480
テストケースの名前はどうつけるべきか?
orgachem
PRO
2
630
欠陥を早期に発見するための Software Engineer in Test とその重要性 / What is Software Engineer in Test and How they works
orgachem
PRO
21
4.6k
住宅を WebXR で評価しよう / Evaluating My Home by WebXR
orgachem
PRO
0
190
HOME VR
orgachem
PRO
1
820
uGUI の自動操作の考え方と操作方法
orgachem
PRO
1
1.5k
Swift Macro に備えて構文木を 10min で学ぶ / Learn Syntax Tree for Swift Macro in 10 minutes
orgachem
PRO
1
1.5k
Other Decks in Programming
See All in Programming
Inside of Swift Export
giginet
PRO
1
200
EMこそClaude Codeでコード調査しよう
shibayu36
0
480
マイベストのシンプルなデータ基盤の話 - Googleスイートとのつき合い方 / mybest-simple-data-architecture-google-nized
snhryt
0
100
alien-signals と自作 OSS で実現する フレームワーク非依存な ロジック共通化の探求 / Exploring Framework-Agnostic Logic Sharing with alien-signals and Custom OSS
aoseyuu
2
810
スマホから Youtube Shortsを見られないようにする
lemolatoon
27
34k
bootcamp2025_バックエンド研修_WebAPIサーバ作成.pdf
geniee_inc
0
140
AkarengaLT vol.38
hashimoto_kei
1
130
エンジニアインターン「Treasure」とHonoの2年、そして未来へ / Our Journey with Hono Two Years at Treasure and Beyond
carta_engineering
0
450
Developer Joy - The New Paradigm
hollycummins
1
380
コードとあなたと私の距離 / The Distance Between Code, You, and I
hiro_y
0
210
AI時代に必須!状況言語化スキル / ai-context-verbalization
minodriven
2
210
Devvox Belgium - Agentic AI Patterns
kdubois
1
150
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
The Pragmatic Product Professional
lauravandoore
36
7k
Agile that works and the tools we love
rasmusluckow
331
21k
Music & Morning Musume
bryan
46
6.9k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Designing for humans not robots
tammielis
254
26k
Being A Developer After 40
akosma
91
590k
BBQ
matthewcrist
89
9.9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
How GitHub (no longer) Works
holman
315
140k
Why Our Code Smells
bkeepers
PRO
340
57k
Transcript
7JNTDSJQU੩తղੳͷ ޫͱҋ
"CPVUNF
Kuniwak
7JNTDSJQU੩తղੳͷ ޫͱҋ
ޫͱҋͱ͍ͬͨͳɻ ͋Ειͩɻ
VViimm ssccrriipptt静的解析の 闇
ಛʹมͷղੳͰ ௧͍ʹ͖͋ͬͯͨ
۩ମతʹɿ w ະఆٛมͷ༻Λݕग़ w ະ༻มΛݕग़
࣮ͯ͠Έ͍͍ͨͷͷʜ w ߈ͰJTTVFཱ͕ͭͭ w ཱ͔ͪͩΔṖߏจͨͪ
ʘ͑Δͳʗ
None
ʢ͍͑ͨʜʣ
-W
มղੳͷجຊɺ มͷએݴͱࢀরͷ
એݴͱࢀরΛ͢Δ͜ͱͰʜ w એݴ͞Ε͍ͯͳ͍ͷʹࢀর͞Ε͍ͯΔ w એݴ͞ΕͯΔ͚Ͳࢀর͞Εͯͳ͍ Α͏ͳมΛݟ͚ͭͩ͢
7JNTDSJQUͷมએݴ
7JNTDSJQUͷมએݴ
–:h redir lSFEJ<S>\WBS^ϝοηʔδΛมʹ ϦμΠϨΫτ͠·͢ɻม͕ଘࡏ͠ͳ͍ ߹ɺ࡞͞Ε·͢ɻz
ίΠπɺมએݴ Ͱ͖Δͧʂ
-W
มղੳͷجຊɺ είʔϓΛ͓͑͞Δ͜ͱ
είʔϓͷछྨΛ ΈͯΈΑ͏
w NZ w PVS w MPDBM w TUBUF w ҉ͷHMPCBM
1FSM 7JNTDSJQU w H w M w T w X w C w U w W w ҉ͷH w ҉ͷM w ҉ͷW
ѹతͰͳ͍͔ʂ
͔͠ʮ҉ͷʙʯ͕ དͷDPVOUΛ Ҿ͖ى͜͢
100 0 100
WDPVOU͕ ࢀর͞ΕͯΔʂ
͞Βʹมͱؔʜ
var func
ผۭؒͩίϨʂ
-W
͋Δྻ͔Βผͷ ྻΛͭ͘ΔؔNBQ
จࣈྻ 1FSMͷNBQؔ 7JNTDSJQUͷNBQؔ
จࣈྻʹ͞ΕΔͱ ࣮ߦ࣌·ͰΘ͔Βͳ͍
ͳͷͰɺଟ͘ͷ੩తݕࠪ πʔϧղੳΛఘΊΔ
ͦ͜Ͱɺແࢹ͢ΔΑ͏ ʹͬͯΈͨͱ͜Ζʜ
ޡܯࠂͷཛྷ
ٽ͖ͳ͕ΒจࣈྻϦςϥϧ͚ͩ ղੳͰ͖ΔΑ͏ʹͨ͠ʜ
ʘŞŞŞʜNBQؔ ུ ʗ
ΩʔೖྗΛӈͷΩʔೖྗʹׂΓͯΔ NBQίϚϯυ
มએݴίϚϯυ͕࣮ߦ͞ΕΔ NBQίϚϯυͰมએݴ
Զ͢Ͱʹจࣈྻͷ߹ʹ ղੳ͢Δํ๏Λ͍ͬͯΔʜ ಉ͡खॱͰղੳͯ͠Δͧʂ
ʘʜʗ
ʘŞŞŞʜʗ
NBQίϚϯυͰมએݴ Ωʔೖྗͷ࠶ݱͳͷͰɺҟೖΔ
None
řŕ
ʘŞŞŞʜʗ
ʘ୭͕࠶ؼల։͠ͳ͍ͱݴͬͨʁʗ
͜ΕΒͷจࣈ͕NBQ͞Εͯͳ͍ͱݶΒͳ͍ʂ NBQ࠶ؼల։͞ΕΔ
řřŕ
ʘ͑Δͳʗ
ʢ͍͑ͨʜʣ
͍͑ͨͷͰɺղੳ͍͢͠ ίʔυΛॻ͍ͯ΄͍͠
ղੳ͍͢͠ίʔυ OPSFNBQ࠶ؼల։͞Εͳ͍ จࣈྻΛಈతʹૢ࡞͠ͳ͍
ͦΜͳ͜ΜͳͰͰ͖ͨͷ͕
Πϯετʔϧํ๏
$ pip install vim-vint
$ vint .vimrc .vimrc:6:10: Variable is not declared (see :help
E738)
Ұॹʹಇ͖·ͤΜ͔ʁ