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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kuniwak
PRO
August 22, 2015
Programming
8
2.2k
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
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
23
13k
DeNA での思い出 / Memories at DeNA
orgachem
PRO
7
3.2k
それ CLI フレームワークがなくてもできるよ / Building CLI Tools Without Frameworks
orgachem
PRO
18
4.5k
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
4
660
テストケースの名前はどうつけるべきか?
orgachem
PRO
2
730
欠陥を早期に発見するための 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
220
HOME VR
orgachem
PRO
1
850
uGUI の自動操作の考え方と操作方法
orgachem
PRO
1
1.6k
Other Decks in Programming
See All in Programming
AIとペアプロして処理時間を97%削減した話 #pyconshizu
kashewnuts
1
220
Claude Code の Skill で複雑な既存仕様をすっきり整理しよう
yuichirokato
1
360
CSC307 Lecture 14
javiergs
PRO
0
470
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
LangChain4jとは一味違うLangChain4j-CDI
kazumura
1
170
コードレビューをしない選択 #でぃーぷらすトウキョウ
kajitack
3
880
S3ストレージクラスの「見える」「ある」「使える」は全部違う ─ 体験から見た、仕様の深淵を覗く
ya_ma23
0
300
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
230
エラーログのマスキングの仕組みづくりに役立ったASTの話
kumoichi
0
180
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
480
AWS Infrastructure as Code の新機能 2025 総まとめ 〜SA 4人による怒涛のデモ祭り〜
konokenj
10
3.3k
Takumiから考えるSecurity_Maturity_Model.pdf
gessy0129
1
140
Featured
See All Featured
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
270
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
380
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
110
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
410
Believing is Seeing
oripsolob
1
79
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
GraphQLとの向き合い方2022年版
quramy
50
14k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
190
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.8k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
230
Context Engineering - Making Every Token Count
addyosmani
9
740
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)
Ұॹʹಇ͖·ͤΜ͔ʁ