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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Toshikazu Ohashi
September 23, 2017
Programming
690
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
163
220k
黒画面が最高のしごと道具である3つの理由
lighttiger2505
0
2.3k
Golangで作るSQL Language Server(sqls)
lighttiger2505
1
1k
Connect with many developers from the small plugin
lighttiger2505
0
480
作ってわかる現代のVimのAutoComplete ~そしてVimConf2019へ~
lighttiger2505
3
1.8k
自社サービスのDjangoを 1.3から1.11(LTS)に アップグレードするまでの道のり
lighttiger2505
6
3.8k
LSPがもたらしたVimプラグインの変化に思いを馳せる
lighttiger2505
2
1.6k
ターミナルアプリケーションとしてのVim
lighttiger2505
0
650
Go Language Server 使うべし
lighttiger2505
5
2.2k
Other Decks in Programming
See All in Programming
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
500
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
2
620
Heart of Swift Concurrency
koher
0
170
Swift愛好会100回記念 第1回を振り返る
jollyjoester
0
120
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
210
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
280
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
130
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
160
RSSとCodexを使ってX投稿自動化してみた
ochtum
0
110
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
150
Family mrubyの進捗
kishima
1
110
信頼性の目標を誰も求めてない
shubox
0
500
Featured
See All Featured
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
500
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
520
The Curious Case for Waylosing
cassininazir
1
500
Tell your own story through comics
letsgokoyo
1
1.1k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Utilizing Notion as your number one productivity tool
mfonobong
4
580
The SEO Collaboration Effect
kristinabergwall1
1
550
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
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!!