Slide 1

Slide 1 text

GUI is not fast enough!! Toshikazu Ohashi

Slide 2

Slide 2 text

About me • iRidge No.1 Vimmer(1st among 1 people) • My kindle library 6000 over • color schema of this slide is [molokai]

Slide 3

Slide 3 text

ӳޠ͸͜͜·Ͱ

Slide 4

Slide 4 text

ൃදͷલʹ֬ೝͰ͢ • օ͞Μ͸ීஈCLIΛ࢖ͬͯ·͔͢ʁ 1.9ׂํCLIΛ৮ͬͯΔ 2.ඞཁ͕͋Ε͹CLI΋࢓ํ͕ͳ͘৮Δ 3.CLIͳͲݟͨ͘΋৮Γͨ͘΋ͳ͍ɻͿͬͪΌ ͚ؾ࣋ͪѱ͍

Slide 5

Slide 5 text

ΞδΣϯμ • 1. ͳΜͰCLIͳΜͯ࢖ͬͯΜͷʁϚκͳͷʁ • 2. ࠓ೔͔ΒͰ͖ΔCLIվળTIPS • 2-1. ڧྗͳγΣϧΛ࢖͓͏ • 2-2. ௥ՃίϚϯυ/ϓϥάΠϯͰշదͳ࢓ࣄΛ • 2-3. ϙʔλϓϧͳ؀ڥͰ͍ͭͰ΋ύϫϑϧ • 3. ·ͱΊ

Slide 6

Slide 6 text

• 1. ͳΜͰCLIͳΜͯ࢖ͬͯΜͷʁϚκͳͷʁ • 2. ࠓ೔͔ΒͰ͖ΔCLIվળTIPS • 2-1. ڧྗͳγΣϧΛ࢖͓͏ • 2-2. ௥ՃίϚϯυ/ϓϥάΠϯͰշదͳ࢓ࣄΛ • 2-3. ϙʔλϓϧͳ؀ڥͰ͍ͭͰ΋ύϫϑϧ • 3. ·ͱΊ

Slide 7

Slide 7 text

ͦ΋ͦ΋લఏ͕ҧ͏ • GUI͸୭Ͱ΋؆୯ʹ࢖͑ΔΑ͏ʹɺϢʔβʹ༩͑ Δબ୒ࢶΛͱͯ΋গͳ͘ɺڧྗͳ΋ͷʹ͢Δ • CLI(ͱ͍͏͔UNIX)͸ͦ΋ͦ΋ॳ৺ऀΛड͚ೖ ΕΔͭ΋ΓͳͲͳ͍ɻʮԿΛ͍ͯ͠Δ͔Θ͔Β ͳ͍ͷͳΒɺ͜͜ʹ͍Δ΂͖Ͱ͸ͳ͍ʯ͕ઃܭ ࢥ૝

Slide 8

Slide 8 text

ͳΜͰCLIͳΜͯ࢖ͬͯΜͷʁ • CLI͸৭ʑ଎͍ • ىಈ͕଎͍ • Ϩεϙϯε͕଎͍ • શ෦CLIͰ΍Ε͹੾Γସ͑ͳ͠ • GIT΋DBૢ࡞΋ςετΤσΟοτ΋͢΂ͯ̍ը໘ • ڴҖͷ֦ுੑ • GUIͰͰ͖ͯCLIʹͰ͖ͳ͍͜ͱ͸ͳ͍

Slide 9

Slide 9 text

CLI͸ࢥߟΛૢ࡞ʹ௚݁͢Δ • GUIͳΒ • ૢ࡞͍ͨͬ͠! • ରԠ͢Διϑτ΢ΣΞΛىಈ͢Δɻ·ͨ͸΢Οϯυ΢੾Γସ͑ • ϝχϡʔΛ୳͢ • ૢ࡞Λ࣮ߦ͢Δ • CLIͳΒ • ૢ࡞͍ͨͬ͠! • ରԠ͢ΔίϚϯυΛ࣮ߦ͢Δ

Slide 10

Slide 10 text

σϝϦοτ • ֶशίετ͕ߴ͍…ͨͩͻͨ͢Βʹߴ͍ • ίϚϯυΛ֮͑ͳ͍ͱԿ΋Ͱ͖ͳ͍ • ઃఆϑΝΠϧ͕΋͸΍ࠇຐज़ • shell scriptΛ௕จॻ͘ͱՄಡੑ͕͑Β͍͜ͱʹ • தಟੑ͕ߴ͍ • Կނ͔ೋݴ໨ʹ͸VimͬͯݴͬͯΔɻφϯσ

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Ϛκͳͷʁ

Slide 13

Slide 13 text

ϋΠ

Slide 14

Slide 14 text

ಥવͰ͕͢ ͜͜ͰΫΠζͰ͢

Slide 15

Slide 15 text

Q.͜ͷ਺ࣈ͸ͳΜͰ͠ΐ͏͔ʁ 2517

Slide 16

Slide 16 text

A.CLIͷઃఆߦ਺ (2017/09/23࣌఺)

Slide 17

Slide 17 text

Ͳ͏ͯ͜͠͏ͳΔ·Ͱ์͓͍ͬͯͨΜͩ • લ৬͸൒෼Excel৬ਓ • GeekͬΆ͍͜ͱΛͨͯ͘͠3೥ҐCLIΛ͍͡Δ • ͜ͷ࣌఺ͰઃఆϑΝΠϧʹ+200ίϛοτ • ϑϦʔμϜͳ؀ڥͳͷͰCLIͱVimͰ൒೥࢓ࣄ͢Δ • ͜ͷ࣌఺ͰઃఆϑΝΠϧʹ+200ίϛοτ • ࣾೋපΛ͜͡ΒͤΔ

Slide 18

Slide 18 text

• 1. ͳΜͰCLIͳΜͯ࢖ͬͯΜͷʁϚκͳͷʁ • 2. ࠓ೔͔ΒͰ͖ΔCLIվળTIPS • 2-1. ڧྗͳγΣϧΛ࢖͓͏ • 2-2. ௥ՃίϚϯυ/ϓϥάΠϯͰշదͳ࢓ࣄΛ • 2-3. ϙʔλϓϧͳ؀ڥͰ͍ͭͰ΋ύϫϑϧ • 3. ·ͱΊ

Slide 19

Slide 19 text

CLI͸ࣗ෼ͷ෦԰ͷΑ͏ͳ΋ͷͰ͋Δ • ๛͔ͳੜ׆ͷͨΊɺࣗવͱՈ۩ͷ഑ஔΛߟ͑ͨΓɺ ศརͳಓ۩΍Ոి੡඼Λἧ͑ͨΓ͢Δͷָ͍ͬͯ͠ • CLI΋ಉ͡ɻ๛͔ͳੜ׆ͷͨΊͷΧελϚΠζ • Α͘࢖͏ίϚϯυʹΤΠϦΞεషΔ • ΑΓศརʹ࢖͏ͨΊʹ৽͍͠ϓϥάΠϯ΍πʔ ϧΛἧ͑Δ

Slide 20

Slide 20 text

ͪΐͬͱͣͭͰ͍͍ • Small is beautiful.(খ͍͞΋ͷ͸ඒ͍͠) • CLIͷ͍͍ͱ͜Ζ͸೔ʑͷͪΐͬͱͨ͠ෆຬΛ ঃʑʹվળͰ͖Δ͜ͱ • ͨͬͨҰߦͷઃఆ͕ܶతͳվળΛ΋ͨΒ͢

Slide 21

Slide 21 text

·ͣ͜͏͍͏λʔϛφϧͱ͸ Φαϥό͠·͠ΐ͏

Slide 22

Slide 22 text

• 1. ͳΜͰCLIͳΜͯ࢖ͬͯΜͷʁϚκͳͷʁ • 2. ࠓ೔͔ΒͰ͖ΔCLIվળTIPS • 2-1. ڧྗͳγΣϧΛ࢖͓͏ • 2-2. ௥ՃίϚϯυ/ϓϥάΠϯͰշదͳ࢓ࣄΛ • 2-3. ϙʔλϓϧͳ؀ڥͰ͍ͭͰ΋ύϫϑϧ • 3. ·ͱΊ

Slide 23

Slide 23 text

ZSH • ͭΑ͍Shell • ิ׬͕௒ศརʹͳΔ • ϓϥάΠϯʹΑΔΧελϚΠζੑ͕ߴ͍ • ࢀߟ[׽ͷZSH](http://news.mynavi.jp/ column/zsh/)

Slide 24

Slide 24 text

ิ׬ • σϑΥϧτͷิ׬͕طʹศར • BashͷΑ͏ʹҰҙͰͳͯ͘΋ิ׬͢Δ • GitͷαϒίϚϯυ΍ϑϥά·Ͱิ׬͢Δ

Slide 25

Slide 25 text

DEMO

Slide 26

Slide 26 text

ώετϦ • Ұ౓ଧͪࠐΜͩίϚϯυͳͧೋ౓΋ଧͭ΋ͷ͔ • ͱʹ͔͘ώετϦΛͨͲΔػೳ͕ͭΑ͍

Slide 27

Slide 27 text

DEMO

Slide 28

Slide 28 text

ϓϩϯϓτ • ϓϩϯϓτΛ͍͡ΔͱͦΕ͚ͩͰޮ཰্͕͕Δ • ΧϨϯτσΟϨΫτϦ͸Ͳ͔͜ • ݱࡏGitͷϒϥϯν͸Կ͔ • Vim͕όοΫάϥ΢ϯυͰಈ͍͍ͯΔ͔

Slide 29

Slide 29 text

# ݱࡏͷϒϥϯν ͳ͓εςʔλεʹΑΓࡾ৭ʹมԽ ੺: staged͋Γ ԫ: change͋Γ ྘: changeͳ͠ εςʔλεදࣔ͸ॏ͗ͯ͢੾ͬͨ

Slide 30

Slide 30 text

# Vimͷδϣϒ όοΫάϥ΢ϯυͰVim͕ಈ͍͍ͯͨΒVimͱදࣔ

Slide 31

Slide 31 text

# Line EditorͷϞʔυ Vimͱಉ༷ͷૢ࡞͕Ͱ͖ΔΑ͏ʹΧελϚΠζ͍ͯ͠ΔͷͰϞʔυ͕͋Δ ࠓͷϞʔυΛ֬ೝͰ͖Δ

Slide 32

Slide 32 text

# ΧϨϯτσΟϨΫτϦ

Slide 33

Slide 33 text

DEMO

Slide 34

Slide 34 text

• 1. ͳΜͰCLIͳΜͯ࢖ͬͯΜͷʁϚκͳͷʁ • 2. ࠓ೔͔ΒͰ͖ΔCLIվળTIPS • 2-1. ڧྗͳγΣϧΛ࢖͓͏ • 2-2. ௥ՃίϚϯυ/ϓϥάΠϯͰշదͳ࢓ࣄΛ • 2-3. ϙʔλϓϧͳ؀ڥͰ͍ͭͰ΋ύϫϑϧ • 3. ·ͱΊ

Slide 35

Slide 35 text

͓͠ͳ͕͖ • zsh-syntax-highlighting • zsh-autosuggestions • zsh-completions • fzf • enhancd • ghq • tig

Slide 36

Slide 36 text

zsh-syntax-highlighting • syntax highlight is GOT !! • γϯλοΫε͕ద༻͞ΕΔɻͨͩͦΕ͚ͩ • ͦΕ͚ͩͰޡૢ࡞͕֨ஈʹݮΔ

Slide 37

Slide 37 text

zsh-autosuggestions • ώετϦ͕ߋʹڧྗʹͳΔ • ώετϦͷ಺༰ΛࣗಈతʹαδΣετ͢Δ • ίϚϯυଧ伴ˠώετϦద༻ͷ൑அ͕௒଎ʹ ͳΔ

Slide 38

Slide 38 text

·ͱΊͯDEMO

Slide 39

Slide 39 text

fzf • fuzzy matcher(;͊͡ʔ·ͬͪΌʔ)ͱ͔͍ΘΕΔ΍ ͭɻଟ͘ͷྨࣅπʔϧ͕੾᛭ୖຏ͢ΔCLIπʔϧͷҰେ δϟϯϧͰ͋Δɻ΄͔ʹ͸pecoͱ͔͋Δ • stdinΛϦετදࣔ͢Δ • ೖྗΩʔϫʔυͰϚονϯά͢Δ • બ୒߲ͨ͠໨Λstdoutʹ౉͢ • ͨͩͦΕ͚ͩͷπʔϧɻ߇͑ΊʹݴͬͯGOT

Slide 40

Slide 40 text

DEMO

Slide 41

Slide 41 text

fzfͭΑ͍ • ͓Θ͔Γ͍͚ͨͩͨͩΖ͏͔ʁ • fzf͸CLIૢ࡞ʹ͓͚Δબ୒ͷखॱΛݶΓͳ͘ߴ଎Խ͢Δɻ • Ұཡදࣔ(ex:ϒϥϯνҰཡදࣔ) • ୳͢(ex:େྔͷϒϥϯν͔Β໨Ͱݟ͕ͯ͢͞) • ૢ࡞ର৅ʹίϚϯυ࣮ߦ(ex:ϒϥϯνΛνΣοΫΞ΢τ) • ͔͠΋ΧελϚΠζ࣍ୈͰԿʹͰ΋ద༻Մೳ

Slide 42

Slide 42 text

enhancd • CLIૢ࡞ʹ͓͍ͯ࠷΋࣮ߦ͞ΕΔίϚϯυͱ͸ [cd]ͳ͍͠[ls]Ͱ͋Δɻҟ࿦͸ೝΊͳ͍ • [cd]ͷޮ཰Խ==CLIͷޮ཰Խ • લड़ͨ͠fzfΛ׆༻ํ๏ͷதͰ΋࠷΋༗༻ͳ΋ ͷͷҰͭ

Slide 43

Slide 43 text

DEMO

Slide 44

Slide 44 text

ghq • ۀ຿Λ͍ͯ͠Ε͹؅ཧ͢ΔgitϦϙδτϦ͸૿͑ଓ ͚Δ • 20~30ͷϦϙδτϦΛ͖Ε͍ʹ഑ஔ͢Δͷ͸໘౗ • Golangͷ͓࡞๏ʹैͬͯ؆୯ɺ͖Ε͍ʹϦϙ δτϦ؅ཧ͕Ͱ͖Δ • $GOPATH/src/{domain}/{user}/{repo}

Slide 45

Slide 45 text

DEMO

Slide 46

Slide 46 text

tig • CLIͷgitΫϥΠΞϯτ • CLIͰgitૢ࡞͍ͯ͠ΔΞφλɻtigΛ࢖Θͳ͍ͳΜͯਓੜͷ ൒෼ଛ͍ͯ͠·͢Α • ଎͍ɻͦͯ͠syntax highlight is GOT • add, resetʹΑΔstage/unstageૢ࡞͕2ഒ଎ • log, blameʹΑΔௐ͕ࠪ2ഒ଎ • ΧελϚΠζ͢Ε͹rebase -i ΋2ഒ଎

Slide 47

Slide 47 text

DEMO

Slide 48

Slide 48 text

• 1. ͳΜͰCLIͳΜͯ࢖ͬͯΜͷʁϚκͳͷʁ • 2. ࠓ೔͔ΒͰ͖ΔCLIվળTIPS • 2-1. ڧྗͳγΣϧΛ࢖͓͏ • 2-2. ௥ՃίϚϯυ/ϓϥάΠϯͰշదͳ࢓ࣄΛ • 2-3. ϙʔλϓϧͳ؀ڥͰ͍ͭͰ΋ύϫϑϧ • 3. ·ͱΊ

Slide 49

Slide 49 text

͜͜·Ͱฉ͍ͯ Ͳ͏ࢥ͍·͔ͨ͠ʁ

Slide 50

Slide 50 text

ઃఆ/Πϯείେਿwww ϦϞʔταʔόʹSSHͨ͠ͱ͖ͱ͔ PCม͑ͨͱ͖Ͳ͏͢ΜͩΑwww

Slide 51

Slide 51 text

ͱ͔ࢥ͍ͬͯ·͢Ͷʁ

Slide 52

Slide 52 text

DEMO

Slide 53

Slide 53 text

dotfilesۦಈ։ൃ • CLIͷઃఆ͸͢΂ͯςΩετϑΝΠϧ • ͭɾ·ɾΓɻ͢΂ͯόʔδϣϯ؅ཧͰ͖Δ • ୭͕ݴ͔ͬͨdotfiles • GitHubʹͨͯ·͢͸dotfilesϦϙδτϦ • [.̋̋rc]ͥΜͿೖΕͯ • git clone ͢ΓΌ͜ΜʹͪΘ

Slide 54

Slide 54 text

No content

Slide 55

Slide 55 text

zplug • zshͷϓϥάΠϯϚωʔδϟ • zshͷϓϥάΠϯ͔ΒzshrcͰ࢖༻͍ͯ͠ΔCLIπʔ ϧʹࢸΔ·ͰΠϯετʔϧՄೳ • zsh͕ىಈͨ͠ॠؒʹઃఆϑΝΠϧ಺ͷϓϥάΠϯΛ ͢΂ͯΠϯετʔϧ • ͿͬͪΌ্͚ڃऀ޲͖͔ͩΒɺ·ͣ͸prezto͋ͨΓ ͔Β࢝Ίͨ΄͏͕Α͛͞

Slide 56

Slide 56 text

make • dotfilesͷߏ੒؅ཧ͸makeͰ΍Δ • make͸͍͍ͩͨͷOSʹඪ४૷උ • chef΍Βansible΍Βେڼͳπʔϧ͸ dotfilesʹ͸ෆཁ

Slide 57

Slide 57 text

਺෼͋Ε͹ Ͳ͜Ͱ͋Ζ͏ͱ΋ ϘΫͷ͔Μ͕͍͖͑ͨ͞ΐ͏ͷCLI ͕࢖͑Δ

Slide 58

Slide 58 text

• 1. ͳΜͰCLIͳΜͯ࢖ͬͯΜͷʁϚκͳͷʁ • 2. ࠓ೔͔ΒͰ͖ΔCLIվળTIPS • 2-1. ڧྗͳγΣϧΛ࢖͓͏ • 2-2. ௥ՃίϚϯυ/ϓϥάΠϯͰշదͳ࢓ࣄΛ • 2-3. ϙʔλϓϧͳ؀ڥͰ͍ͭͰ΋ύϫϑϧ • 3. ·ͱΊ

Slide 59

Slide 59 text

·ͱΊ • CLI͸ࢥߟͱ௚݁ͯ͠ίϚϯυ࣮ߦ͕Ͱ͖Δ͔Βɺ΋ ͱ΋ͱͷ࣮ߦ଎౓ͱ͍͋·ͬͯ৭ʑ଎͍ • ΧελϚΠζͰ޾ͤʹͳΕΔɻ೔ʑͷগ͠ͷվળΛ ঃʑʹ΍͍ͬͯ͜͏൒೥΋࿔͘Γଓ͚Ε͹ख์ͤͳ ͘ͳΔ • CLIઃఆ͸ϙʔλϒϧʹ࣋ͪ͸͜ͼՄೳ • ई͕ͨΒͳ͗ͯ͢Vim·ͰͨͲΓண͚ͳ͔ͬͨ

Slide 60

Slide 60 text

Let’s enjoy CLI!!