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
1
640
GUI is not fast enough!! (GUIには速さが足りないっ!!)
社内勉強会でCUIについて話す時用の資料
Toshikazu Ohashi
September 23, 2017
Tweet
Share
More Decks by Toshikazu Ohashi
See All by Toshikazu Ohashi
無自覚にメンバーの心理的安全性を奪っていた経験から得た学び
lighttiger2505
159
220k
黒画面が最高のしごと道具である3つの理由
lighttiger2505
0
2.2k
Golangで作るSQL Language Server(sqls)
lighttiger2505
1
950
Connect with many developers from the small plugin
lighttiger2505
0
440
作ってわかる現代のVimのAutoComplete ~そしてVimConf2019へ~
lighttiger2505
3
1.8k
自社サービスのDjangoを 1.3から1.11(LTS)に アップグレードするまでの道のり
lighttiger2505
6
3.7k
LSPがもたらしたVimプラグインの変化に思いを馳せる
lighttiger2505
2
1.5k
ターミナルアプリケーションとしてのVim
lighttiger2505
0
600
Go Language Server 使うべし
lighttiger2505
5
2.1k
Other Decks in Programming
See All in Programming
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
1.1k
PC-6001でPSG曲を鳴らすまでを全部NetBSD上の Makefile に押し込んでみた / osc2025hiroshima
tsutsui
0
210
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
310
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
140
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
350
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
5.4k
CSC307 Lecture 04
javiergs
PRO
0
640
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
350
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osc25hi-duckdb
takahashiikki
0
250
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
490
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
2.2k
CSC307 Lecture 01
javiergs
PRO
0
670
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
2
2.2k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
270
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
280
Documentation Writing (for coders)
carmenintech
77
5.2k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
2.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
180
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
86
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
The Invisible Side of Design
smashingmag
302
51k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
110
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!!