Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
GUI is not fast enough!! (GUIには速さが足りないっ!!)
Search
Toshikazu Ohashi
September 23, 2017
Programming
700
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GUI is not fast enough!! (GUIには速さが足りないっ!!)
社内勉強会でCUIについて話す時用の資料
Toshikazu Ohashi
September 23, 2017
More Decks by Toshikazu Ohashi
See All by Toshikazu Ohashi
無自覚にメンバーの心理的安全性を奪っていた経験から得た学び
lighttiger2505
164
220k
黒画面が最高のしごと道具である3つの理由
lighttiger2505
0
2.3k
Golangで作るSQL Language Server(sqls)
lighttiger2505
1
1k
Connect with many developers from the small plugin
lighttiger2505
0
490
作ってわかる現代のVimのAutoComplete ~そしてVimConf2019へ~
lighttiger2505
3
1.9k
自社サービスのDjangoを 1.3から1.11(LTS)に アップグレードするまでの道のり
lighttiger2505
6
3.9k
LSPがもたらしたVimプラグインの変化に思いを馳せる
lighttiger2505
2
1.6k
ターミナルアプリケーションとしてのVim
lighttiger2505
0
660
Go Language Server 使うべし
lighttiger2505
5
2.2k
Other Decks in Programming
See All in Programming
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.5k
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
140
Next.js: The final boss of Web Performance
guaca
0
370
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
500
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
350
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
140
ActionController meets Protocol Buffers
sorah
1
750
SODA - FACT BOOK(EN)
sodainc
1
190
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
190
dotNET_vulnclicker_intro.pdf
deka_morita
0
160
AI Augmentation Techniques with Liberty
ivargrimstad
0
180
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
5
4.9k
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
YesSQL, Process and Tooling at Scale
rocio
174
15k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
520
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
300
A Soul's Torment
seathinner
8
3.9k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Color Theory Basics | Prateek | Gurzu
gurzu
1
500
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
The untapped power of vector embeddings
frankvandijk
2
2k
Producing Creativity
orderedlist
PRO
348
41k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
HDC tutorial
michielstock
2
990
Transcript
GUI is not fast enough!! Toshikazu Ohashi
About me • iRidge No.1 Vimmer(1st among 1 people) •
My kindle library 6000 over • color schema of this slide is [molokai]
ӳޠ͜͜·Ͱ
ൃදͷલʹ֬ೝͰ͢ • օ͞ΜීஈCLIΛͬͯ·͔͢ʁ 1.9ׂํCLIΛ৮ͬͯΔ 2.ඞཁ͕͋ΕCLIํ͕ͳ͘৮Δ 3.CLIͳͲݟͨ͘৮Γͨ͘ͳ͍ɻͿͬͪΌ ͚ؾ࣋ͪѱ͍
ΞδΣϯμ • 1. ͳΜͰCLIͳΜͯͬͯΜͷʁϚκͳͷʁ • 2. ࠓ͔ΒͰ͖ΔCLIվળTIPS • 2-1. ڧྗͳγΣϧΛ͓͏
• 2-2. ՃίϚϯυ/ϓϥάΠϯͰշదͳࣄΛ • 2-3. ϙʔλϓϧͳڥͰ͍ͭͰύϫϑϧ • 3. ·ͱΊ
• 1. ͳΜͰCLIͳΜͯͬͯΜͷʁϚκͳͷʁ • 2. ࠓ͔ΒͰ͖ΔCLIվળTIPS • 2-1. ڧྗͳγΣϧΛ͓͏ •
2-2. ՃίϚϯυ/ϓϥάΠϯͰշదͳࣄΛ • 2-3. ϙʔλϓϧͳڥͰ͍ͭͰύϫϑϧ • 3. ·ͱΊ
ͦͦલఏ͕ҧ͏ • GUI୭Ͱ؆୯ʹ͑ΔΑ͏ʹɺϢʔβʹ༩͑ ΔબࢶΛͱͯগͳ͘ɺڧྗͳͷʹ͢Δ • CLI(ͱ͍͏͔UNIX)ͦͦॳ৺ऀΛड͚ೖ ΕΔͭΓͳͲͳ͍ɻʮԿΛ͍ͯ͠Δ͔Θ͔Β ͳ͍ͷͳΒɺ͜͜ʹ͍Δ͖Ͱͳ͍ʯ͕ઃܭ ࢥ
ͳΜͰCLIͳΜͯͬͯΜͷʁ • CLI৭ʑ͍ • ىಈ͕͍ • Ϩεϙϯε͕͍ • શ෦CLIͰΕΓସ͑ͳ͠ •
GITDBૢ࡞ςετΤσΟοτͯ̍͢ը໘ • ڴҖͷ֦ுੑ • GUIͰͰ͖ͯCLIʹͰ͖ͳ͍͜ͱͳ͍
CLIࢥߟΛૢ࡞ʹ݁͢Δ • GUIͳΒ • ૢ࡞͍ͨͬ͠! • ରԠ͢ΔιϑτΣΞΛىಈ͢Δɻ·ͨΟϯυΓସ͑ • ϝχϡʔΛ୳͢ •
ૢ࡞Λ࣮ߦ͢Δ • CLIͳΒ • ૢ࡞͍ͨͬ͠! • ରԠ͢ΔίϚϯυΛ࣮ߦ͢Δ
σϝϦοτ • ֶशίετ͕ߴ͍…ͨͩͻͨ͢Βʹߴ͍ • ίϚϯυΛ֮͑ͳ͍ͱԿͰ͖ͳ͍ • ઃఆϑΝΠϧ͕ࠇຐज़ • shell scriptΛจॻ͘ͱՄಡੑ͕͑Β͍͜ͱʹ
• தಟੑ͕ߴ͍ • Կނ͔ೋݴʹVimͬͯݴͬͯΔɻφϯσ
None
Ϛκͳͷʁ
ϋΠ
ಥવͰ͕͢ ͜͜ͰΫΠζͰ͢
Q.͜ͷࣈͳΜͰ͠ΐ͏͔ʁ 2517
A.CLIͷઃఆߦ (2017/09/23࣌)
Ͳ͏ͯ͜͠͏ͳΔ·Ͱ์͓͍ͬͯͨΜͩ • લ৬Excel৬ਓ • GeekͬΆ͍͜ͱΛͨͯ͘͠3ҐCLIΛ͍͡Δ • ͜ͷ࣌ͰઃఆϑΝΠϧʹ+200ίϛοτ • ϑϦʔμϜͳڥͳͷͰCLIͱVimͰࣄ͢Δ •
͜ͷ࣌ͰઃఆϑΝΠϧʹ+200ίϛοτ • ࣾೋපΛ͜͡ΒͤΔ
• 1. ͳΜͰCLIͳΜͯͬͯΜͷʁϚκͳͷʁ • 2. ࠓ͔ΒͰ͖ΔCLIվળTIPS • 2-1. ڧྗͳγΣϧΛ͓͏ •
2-2. ՃίϚϯυ/ϓϥάΠϯͰշదͳࣄΛ • 2-3. ϙʔλϓϧͳڥͰ͍ͭͰύϫϑϧ • 3. ·ͱΊ
CLIࣗͷ෦ͷΑ͏ͳͷͰ͋Δ • ๛͔ͳੜ׆ͷͨΊɺࣗવͱՈ۩ͷஔΛߟ͑ͨΓɺ ศརͳಓ۩ՈిΛἧ͑ͨΓ͢Δͷָ͍ͬͯ͠ • CLIಉ͡ɻ๛͔ͳੜ׆ͷͨΊͷΧελϚΠζ • Α͘͏ίϚϯυʹΤΠϦΞεషΔ • ΑΓศརʹ͏ͨΊʹ৽͍͠ϓϥάΠϯπʔ
ϧΛἧ͑Δ
ͪΐͬͱͣͭͰ͍͍ • Small is beautiful.(খ͍͞ͷඒ͍͠) • CLIͷ͍͍ͱ͜Ζʑͷͪΐͬͱͨ͠ෆຬΛ ঃʑʹվળͰ͖Δ͜ͱ • ͨͬͨҰߦͷઃఆ͕ܶతͳվળΛͨΒ͢
·ͣ͜͏͍͏λʔϛφϧͱ Φαϥό͠·͠ΐ͏
• 1. ͳΜͰCLIͳΜͯͬͯΜͷʁϚκͳͷʁ • 2. ࠓ͔ΒͰ͖ΔCLIվળTIPS • 2-1. ڧྗͳγΣϧΛ͓͏ •
2-2. ՃίϚϯυ/ϓϥάΠϯͰշదͳࣄΛ • 2-3. ϙʔλϓϧͳڥͰ͍ͭͰύϫϑϧ • 3. ·ͱΊ
ZSH • ͭΑ͍Shell • ิ͕ศརʹͳΔ • ϓϥάΠϯʹΑΔΧελϚΠζੑ͕ߴ͍ • ࢀߟ[ͷZSH](http://news.mynavi.jp/ column/zsh/)
ิ • σϑΥϧτͷิ͕طʹศར • BashͷΑ͏ʹҰҙͰͳͯ͘ิ͢Δ • GitͷαϒίϚϯυϑϥά·Ͱิ͢Δ
DEMO
ώετϦ • ҰଧͪࠐΜͩίϚϯυͳͧೋଧͭͷ͔ • ͱʹ͔͘ώετϦΛͨͲΔػೳ͕ͭΑ͍
DEMO
ϓϩϯϓτ • ϓϩϯϓτΛ͍͡ΔͱͦΕ͚ͩͰޮ্͕͕Δ • ΧϨϯτσΟϨΫτϦͲ͔͜ • ݱࡏGitͷϒϥϯνԿ͔ • Vim͕όοΫάϥϯυͰಈ͍͍ͯΔ͔
# ݱࡏͷϒϥϯν ͳ͓εςʔλεʹΑΓࡾ৭ʹมԽ : staged͋Γ ԫ: change͋Γ : changeͳ͠ εςʔλεදࣔॏ͗ͯͬͨ͢
# Vimͷδϣϒ όοΫάϥϯυͰVim͕ಈ͍͍ͯͨΒVimͱදࣔ
# Line EditorͷϞʔυ Vimͱಉ༷ͷૢ࡞͕Ͱ͖ΔΑ͏ʹΧελϚΠζ͍ͯ͠ΔͷͰϞʔυ͕͋Δ ࠓͷϞʔυΛ֬ೝͰ͖Δ
# ΧϨϯτσΟϨΫτϦ
DEMO
• 1. ͳΜͰCLIͳΜͯͬͯΜͷʁϚκͳͷʁ • 2. ࠓ͔ΒͰ͖ΔCLIվળTIPS • 2-1. ڧྗͳγΣϧΛ͓͏ •
2-2. ՃίϚϯυ/ϓϥάΠϯͰշదͳࣄΛ • 2-3. ϙʔλϓϧͳڥͰ͍ͭͰύϫϑϧ • 3. ·ͱΊ
͓͠ͳ͕͖ • zsh-syntax-highlighting • zsh-autosuggestions • zsh-completions • fzf •
enhancd • ghq • tig
zsh-syntax-highlighting • syntax highlight is GOT !! • γϯλοΫε͕ద༻͞ΕΔɻͨͩͦΕ͚ͩ •
ͦΕ͚ͩͰޡૢ࡞͕֨ஈʹݮΔ
zsh-autosuggestions • ώετϦ͕ߋʹڧྗʹͳΔ • ώετϦͷ༰ΛࣗಈతʹαδΣετ͢Δ • ίϚϯυଧ伴ˠώετϦద༻ͷஅ͕ʹ ͳΔ
·ͱΊͯDEMO
fzf • fuzzy matcher(;͊͡ʔ·ͬͪΌʔ)ͱ͔͍ΘΕΔ ͭɻଟ͘ͷྨࣅπʔϧ͕᛭ୖຏ͢ΔCLIπʔϧͷҰେ δϟϯϧͰ͋Δɻ΄͔ʹpecoͱ͔͋Δ • stdinΛϦετදࣔ͢Δ • ೖྗΩʔϫʔυͰϚονϯά͢Δ
• બ߲ͨ͠Λstdoutʹ͢ • ͨͩͦΕ͚ͩͷπʔϧɻ߇͑ΊʹݴͬͯGOT
DEMO
fzfͭΑ͍ • ͓Θ͔Γ͍͚ͨͩͨͩΖ͏͔ʁ • fzfCLIૢ࡞ʹ͓͚ΔબͷखॱΛݶΓͳ͘ߴԽ͢Δɻ • Ұཡදࣔ(ex:ϒϥϯνҰཡදࣔ) • ୳͢(ex:େྔͷϒϥϯν͔ΒͰݟ͕ͯ͢͞) •
ૢ࡞ରʹίϚϯυ࣮ߦ(ex:ϒϥϯνΛνΣοΫΞτ) • ͔͠ΧελϚΠζ࣍ୈͰԿʹͰద༻Մೳ
enhancd • CLIૢ࡞ʹ͓͍ͯ࠷࣮ߦ͞ΕΔίϚϯυͱ [cd]ͳ͍͠[ls]Ͱ͋ΔɻҟೝΊͳ͍ • [cd]ͷޮԽ==CLIͷޮԽ • લड़ͨ͠fzfΛ׆༻ํ๏ͷதͰ࠷༗༻ͳ ͷͷҰͭ
DEMO
ghq • ۀΛ͍ͯ͠Εཧ͢ΔgitϦϙδτϦ૿͑ଓ ͚Δ • 20~30ͷϦϙδτϦΛ͖Ε͍ʹஔ͢Δͷ໘ • Golangͷ͓࡞๏ʹैͬͯ؆୯ɺ͖Ε͍ʹϦϙ δτϦཧ͕Ͱ͖Δ •
$GOPATH/src/{domain}/{user}/{repo}
DEMO
tig • CLIͷgitΫϥΠΞϯτ • CLIͰgitૢ࡞͍ͯ͠ΔΞφλɻtigΛΘͳ͍ͳΜͯਓੜͷ ଛ͍ͯ͠·͢Α • ͍ɻͦͯ͠syntax highlight is
GOT • add, resetʹΑΔstage/unstageૢ࡞͕2ഒ • log, blameʹΑΔௐ͕ࠪ2ഒ • ΧελϚΠζ͢Εrebase -i 2ഒ
DEMO
• 1. ͳΜͰCLIͳΜͯͬͯΜͷʁϚκͳͷʁ • 2. ࠓ͔ΒͰ͖ΔCLIվળTIPS • 2-1. ڧྗͳγΣϧΛ͓͏ •
2-2. ՃίϚϯυ/ϓϥάΠϯͰշదͳࣄΛ • 2-3. ϙʔλϓϧͳڥͰ͍ͭͰύϫϑϧ • 3. ·ͱΊ
͜͜·Ͱฉ͍ͯ Ͳ͏ࢥ͍·͔ͨ͠ʁ
ઃఆ/Πϯείେਿwww ϦϞʔταʔόʹSSHͨ͠ͱ͖ͱ͔ PCม͑ͨͱ͖Ͳ͏͢ΜͩΑwww
ͱ͔ࢥ͍ͬͯ·͢Ͷʁ
DEMO
dotfilesۦಈ։ൃ • CLIͷઃఆͯ͢ςΩετϑΝΠϧ • ͭɾ·ɾΓɻͯ͢όʔδϣϯཧͰ͖Δ • ୭͕ݴ͔ͬͨdotfiles • GitHubʹͨͯ·͢dotfilesϦϙδτϦ •
[.̋̋rc]ͥΜͿೖΕͯ • git clone ͢ΓΌ͜ΜʹͪΘ
None
zplug • zshͷϓϥάΠϯϚωʔδϟ • zshͷϓϥάΠϯ͔ΒzshrcͰ༻͍ͯ͠ΔCLIπʔ ϧʹࢸΔ·ͰΠϯετʔϧՄೳ • zsh͕ىಈͨ͠ॠؒʹઃఆϑΝΠϧͷϓϥάΠϯΛ ͯ͢Πϯετʔϧ •
ͿͬͪΌ্͚ڃऀ͖͔ͩΒɺ·ͣprezto͋ͨΓ ͔Β࢝Ίͨ΄͏͕Α͛͞
make • dotfilesͷߏཧmakeͰΔ • make͍͍ͩͨͷOSʹඪ४උ • chefΒansibleΒେڼͳπʔϧ dotfilesʹෆཁ
͋Ε Ͳ͜Ͱ͋Ζ͏ͱ ϘΫͷ͔Μ͕͍͖͑ͨ͞ΐ͏ͷCLI ͕͑Δ
• 1. ͳΜͰCLIͳΜͯͬͯΜͷʁϚκͳͷʁ • 2. ࠓ͔ΒͰ͖ΔCLIվળTIPS • 2-1. ڧྗͳγΣϧΛ͓͏ •
2-2. ՃίϚϯυ/ϓϥάΠϯͰշదͳࣄΛ • 2-3. ϙʔλϓϧͳڥͰ͍ͭͰύϫϑϧ • 3. ·ͱΊ
·ͱΊ • CLIࢥߟͱ݁ͯ͠ίϚϯυ࣮ߦ͕Ͱ͖Δ͔Βɺ ͱͱͷ࣮ߦͱ͍͋·ͬͯ৭ʑ͍ • ΧελϚΠζͰͤʹͳΕΔɻʑͷগ͠ͷվળΛ ঃʑʹ͍ͬͯ͜͏࿔͘Γଓ͚Εख์ͤͳ ͘ͳΔ • CLIઃఆϙʔλϒϧʹ࣋ͪ͜ͼՄೳ
• ई͕ͨΒͳ͗ͯ͢Vim·ͰͨͲΓண͚ͳ͔ͬͨ
Let’s enjoy CLI!!