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
2.2k
8
Share
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
4
460
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
9
6.2k
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
31
15k
DeNA での思い出 / Memories at DeNA
orgachem
PRO
7
3.5k
それ CLI フレームワークがなくてもできるよ / Building CLI Tools Without Frameworks
orgachem
PRO
18
4.6k
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
4
710
テストケースの名前はどうつけるべきか?
orgachem
PRO
2
770
欠陥を早期に発見するための Software Engineer in Test とその重要性 / What is Software Engineer in Test and How they works
orgachem
PRO
21
4.9k
住宅を WebXR で評価しよう / Evaluating My Home by WebXR
orgachem
PRO
0
240
Other Decks in Programming
See All in Programming
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
390
Back to the roots of date
jinroq
0
860
[BalkanRuby 2026] Drop your app/services!
palkan
0
110
GitHubCopilotCLIをはじめよう.pdf
htkym
0
330
Kubernetesを使わない環境にもCloud Nativeなデプロイを実現する / Enabling Cloud Native deployments without the complexity of Kubernetes
linyows
3
410
WebAssembly を読み込むベストプラクティス 2026年春版 / Best Practices for Loading WebAssembly (Spring 2026)
petamoriken
5
1.1k
ハーネスエンジニアリングとは?
kinopeee
13
7k
継続的な負荷検証を目指して
pyama86
3
1.2k
From Formal Specification to Property Based Test
ohbarye
0
2.6k
決定論 vs 確率論:Gemini 3 FlashとTF-IDFを組み合わせた「法規判定エンジン」の構築
shukob
0
160
AI時代になぜ書くのか
mutsumix
0
410
Import assertionsが消えた日~ECMAScriptの仕様はどう決まり、なぜ覆るのか~
bicstone
2
180
Featured
See All Featured
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
150
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
330
Claude Code のすすめ
schroneko
67
220k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.6k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
690
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
360
Java REST API Framework Comparison - PWX 2021
mraible
34
9.3k
What's in a price? How to price your products and services
michaelherold
247
13k
Site-Speed That Sticks
csswizardry
13
1.2k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
550
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
140
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)
Ұॹʹಇ͖·ͤΜ͔ʁ