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
GUI is not fast enough!! (GUIには速さが足りないっ!!)
Search
Toshikazu Ohashi
September 23, 2017
Programming
660
1
Share
GUI is not fast enough!! (GUIには速さが足りないっ!!)
社内勉強会でCUIについて話す時用の資料
Toshikazu Ohashi
September 23, 2017
More Decks by Toshikazu Ohashi
See All by Toshikazu Ohashi
無自覚にメンバーの心理的安全性を奪っていた経験から得た学び
lighttiger2505
160
220k
黒画面が最高のしごと道具である3つの理由
lighttiger2505
0
2.2k
Golangで作るSQL Language Server(sqls)
lighttiger2505
1
980
Connect with many developers from the small plugin
lighttiger2505
0
450
作ってわかる現代のVimのAutoComplete ~そしてVimConf2019へ~
lighttiger2505
3
1.8k
自社サービスのDjangoを 1.3から1.11(LTS)に アップグレードするまでの道のり
lighttiger2505
6
3.7k
LSPがもたらしたVimプラグインの変化に思いを馳せる
lighttiger2505
2
1.6k
ターミナルアプリケーションとしてのVim
lighttiger2505
0
610
Go Language Server 使うべし
lighttiger2505
5
2.1k
Other Decks in Programming
See All in Programming
ファインチューニングせずメインコンペを解く方法
pokutuna
0
270
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎 おもクラ #6版
satoshi256kbyte
1
230
実践CRDT
tamadeveloper
0
170
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
310
[PHPerKaigi 2026]PHPerKaigi2025の企画CodeGolfが最高すぎて社内で内製して半年運営して得た内製と運営の知見
ikezoemakoto
0
340
Smarter Angular mit Transformers.js & Prompt API
christianliebel
PRO
1
120
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
180
Java 21/25 Virtual Threads 소개
debop
0
330
生成 AI 時代のスナップショットテストってやつを見せてあげますよ(α版)
ojun9
0
340
AWS re:Invent 2025の少し振り返り + DevOps AgentとBacklogを連携させてみた
satoshi256kbyte
2
150
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
160
Mastering Event Sourcing: Your Parents Holidayed in Yugoslavia
super_marek
0
150
Featured
See All Featured
Faster Mobile Websites
deanohume
310
31k
How to train your dragon (web standard)
notwaldorf
97
6.6k
Designing Experiences People Love
moore
143
24k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.6k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
180
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
160
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
320
Build your cross-platform service in a week with App Engine
jlugia
234
18k
We Are The Robots
honzajavorek
0
210
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
250
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!!