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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kuniwak
PRO
August 22, 2015
Programming
2.2k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Vim script 静的解析の光と闇
YAPC:Asia 2015 の LT Day2 の発表です。
http://yapcasia.org/2015/
Kuniwak
PRO
August 22, 2015
More Decks by Kuniwak
See All by Kuniwak
AIベース静的検査器の偽陽性率を抑える工夫3選
orgachem
PRO
6
950
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
9
6.4k
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
31
16k
DeNA での思い出 / Memories at DeNA
orgachem
PRO
7
3.6k
それ CLI フレームワークがなくてもできるよ / Building CLI Tools Without Frameworks
orgachem
PRO
18
4.7k
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
4
740
テストケースの名前はどうつけるべきか?
orgachem
PRO
2
900
欠陥を早期に発見するための Software Engineer in Test とその重要性 / What is Software Engineer in Test and How they works
orgachem
PRO
21
5k
住宅を WebXR で評価しよう / Evaluating My Home by WebXR
orgachem
PRO
0
240
Other Decks in Programming
See All in Programming
New "Type" system on PicoRuby
pocke
1
1k
Oxlintのカスタムルールの現況
syumai
6
1.1k
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.7k
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
180
Claspは野良GASの夢をみるか
takter00
0
210
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
140
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
7.8k
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
360
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
740
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
110
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
370
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.5k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
150
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
230
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
400
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
170
sira's awesome portfolio website redesign presentation
elsirapls
0
280
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
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)
Ұॹʹಇ͖·ͤΜ͔ʁ