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
インタラクティブシェルのカスタマイズを楽しもう
Search
kumico
October 20, 2025
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
インタラクティブシェルのカスタマイズを楽しもう
勉強会「神楽坂第1ターミナル」で発表しました。
kumico
October 20, 2025
More Decks by kumico
See All by kumico
こんにちは DID
devoc
0
21
OpenID Connect から学ぶ認証・認可
devoc
0
42
Grafana Cloudとソラカメ
devoc
0
380
モダンターミナルエミュレータは画像を表示できるらしい
devoc
1
47
アプリケーションパフォーマンスの計測と改善の方法を勉強している話
devoc
11
3.4k
Featured
See All Featured
Believing is Seeing
oripsolob
1
170
Game over? The fight for quality and originality in the time of robots
wayneb77
1
230
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
980
ラッコキーワード サービス紹介資料
rakko
1
4.1M
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
320
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Exploring anti-patterns in Rails
aemeredith
3
450
Music & Morning Musume
bryan
47
7.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
Claude Code のすすめ
schroneko
67
230k
Transcript
5BLVNJ,BUBTF ΠϯλϥΫςΟϒγΣϧͷΧε λϚΠζΛָ͠͏
ࣗݾհ w 5BLVNJ,BUBTF w fi TIOFPWJN(P w ❤🍜🎮 w ࠷ۙϋϚ͍ͬͯΔήʔϜ)PMMPX
,OJHIU4JMLTPOH
։ൃऀ͝ͱʹΠϯλϥΫςΟϒγΣϧ 4IFMM ͷݟͨɾ͍৺༷ʑ
None
ΈΜͳ͕ͪͬͯɺΈΜͳ͍͍
ແݶʹΧελϚΠζͰ͖ΔͷͰɺ Ͳ͔͜ΒखΛ͚ͭΔ͔ΜͰ͍Δਓ͕͍Δ͔
ແݶʹΧελϚΠζͰ͖ΔͷͰɺ Ͳ͔͜ΒखΛ͚ͭΔ͔ΜͰ͍Δਓ͕͍Δ͔ ͦͷΑ͏ͳํͷҰॿʹͳΕ͍Ͱ͢🙇
ͳ͢͜ͱ w 4IFMMΛઃఆ͢Δ্Ͱҙ͍ࣝͯ͠Δ͜ͱɾΈ w ͜Ε·Ͱ͖ͬͯͨ4IFMM w ݱࡏͷઃఆ
ͳ͢͜ͱ w 4IFMMΛઃఆ͢Δ্Ͱҙ͍ࣝͯ͠Δ͜ͱɾΈ w ͜Ε·Ͱ͖ͬͯͨ4IFMM w ݱࡏͷઃఆ
4IFMMΛઃఆ͢Δ্Ͱҙ͍ࣝͯ͠Δ͜ͱɾΈ w ΧϨϯτσΟϨΫτϒϥϯν໊ͱίϚϯυೖྗߦ͕͔Ε͍ͯΔߦϓϩϯ ϓτ w ϓϩϯϓτؒʹվߦ w ࠷ݶͷใ͚ͩදࣔ w Ϣʔβʔ໊ϗετ໊
w ΧϨϯτσΟϨΫτϦ w ϒϥϯν໊ w ऴྃεςʔλε w γϯλοΫεϋΠϥΠτ ύε͕௨͍ͬͯΔίϚϯυ͔Ͳ͏͔ҰͰΘ͔Δ w ͍͍ײ͡ͷิ
TJOESFTPSIVTQVSF͕Έ w ߦϓϩϯϓτ w ࠷ݶͷදࣔ w ࣗͷઃఆQVSFͷݟͨ༻ ײΛ͔ͳΓࢀߟʹͯ͠Δ IUUQTHJUIVCDPNTJOESFTPSIVTQVSF
͍͍ײ͡ͷิ w ώετϦʔ͔Βิ w ೖྗதͷίϚϯυͰώετϦʔʹ Ϛον͢Δͷ͕͋Εิ͢Δ w ΊͬͪΌ͏ w αϒίϚϯυͷิ
IUUQTHJUIVCDPN[TIVTFST[TIBVUPTVHHFTUJPOT
ͳ͢͜ͱ w 4IFMMΛઃఆ͢Δ্Ͱҙ͍ࣝͯ͠Δ͜ͱɾΈ w ͜Ε·Ͱ͖ͬͯͨ4IFMM w ݱࡏͷઃఆ
#BTI w d͍ͬͯͨɻ.BD04ͷσϑΥϧτγΣϧ͕·ͩ;TI͡Όͳ͔ͬ ͨࠒɻ w ΧελϚΠζͤͣʹσϑΥϧτͷ·· w -JOVYαʔόʔͳͲͰ࡞ۀ͢Δͱ͖ͳͲσϑΥϧτϩάΠϯγΣϧͳͲΧ ελϚΠζ͠ͳ͍ͷͰɺࠓͰΑ͘͏
;TI w dͰ͍ͬͯͨɻ.BD04ͷσϑΥϧτγΣϧʹͳ͔ͬͯΒΧ ελϚΠζͯ͠͏Α͏ʹͳͬͨ w ਖ਼#BTIͱͷҧ͍͔ͬͯͳ͍ w ϓϥάΠϯϓϥάΠϯϚωʔδϟɺϑϨʔϜϫʔΫͳͲͷΈ͕#BTIΑ Γ͍ͬͯΔҹ w
[QMVH w QSF[UPTUBSTIJQ
ΧελϚΠζপʹϋϚΔ͕ w ࠷ॳQVSFͱBVUPTVHHFTUJPOTͳͲΛΈ߹Θ͍ͤͯͬͯͨɻ w ࣍ʹɺTUBSTIJQΛ͏Α͏ʹͳͬͨɻQVSFͰࠔ͍ͬͯͨΘ͚Ͱͳ͍͕ɺֆจ ࣈ͕ՄѪ͔ͬͨͷͰ͍ͬͯͨ w ऴྃεςʔλεΛදࣔͨ͠Γɺ৭Λௐͨ͠Γɺֆจࣈ͕͖ͨͷͰඇදࣔʹ ͨ͠ΓͱݟͨͷΧελϚΠζΛ࢝ΊΔ w
ϓϥάΠϯϚωʔδϟ͕͏·͘ಈ͔ͳ͔ͬͨΓɺىಈ͕͘ͳͬͨΓɺ৽͍͠ ڥͰ͙͢ʹ͍࢝ΊΔ͜ͱ͕Ͱ͖ͳ͔ͬͨΓͱ֎෦ґଘΛݮΒͨ͘͠ͳΔ w ϓϥάΠϯϑϨʔϜϫʔΫΛΘͣʹɺࣗͰεΫϦϓτΛॻ͍ͯΈͯҊ֎ Ͱ͖ͦ͏ͳ͜ͱʹؾͮ͘
fi TI w ޙdݱࡏ·Ͱ͍ͬͯΔ w εΫϦϓτΛॻ͍ͨͱ͖ͷݟͨɺ#BTI;TIͱ͔ͳΓҧ͏͕ɺΠϯ λϥΫςΟϒγΣϧͱͯ͠͏ʹɺ͋·Γҧײ͕ͳ͍ w Πϯετʔϧޙ͙͢ʹ͑Δ0VUPGUIF#PYͳػೳ
fi TI w ޙdݱࡏ·Ͱ͍ͬͯΔ w εΫϦϓτΛॻ͍ͨͱ͖ͷݟͨɺ#BTI;TIͱ͔ͳΓҧ͏͕ɺΠϯ λϥΫςΟϒγΣϧͱͯ͠͏ʹɺ͋·Γҧײ͕ͳ͍ w Πϯετʔϧޙ͙͢ʹ͑Δ0VUPGUIF#PYͳػೳ
fi TIͷ͖ͳͱ͜Ζ w 0VUPGUIF#PY w σϑΥϧτͰิͳͲͷػೳ͕༗ޮʹͳ͍ͬͯΔͷͰɺࣗͰϓϥάΠϯΛ ཧ͢Δඞཁ͕ͳ͍ɻ w ඇޮͳॲཧΛೖΕͯ͠·͏༨͕গͳ͍ͷͰߴͳىಈ͕อͨΕΔ w
DPO fi H fi TI͕γϯϓϧʹͳΔɻҎԼͷઃఆ͘Β͍ͳΒಠࣗͰॻ͚Δ w ϓϩϯϓτͷݟͨ w ΧελϜΩʔόΠυΤΠϦΞε1"5)पΓ͘Β͍
ͳ͢͜ͱ w 4IFMMΛઃఆ͢Δ্Ͱҙ͍ࣝͯ͠Δ͜ͱɾΈ w ͜Ε·Ͱ͖ͬͯͨ4IFMM w ݱࡏͷઃఆ
ݱࡏͷઃఆ w QVSFϥΠΫͳߦϓϩϯϓτ w ඞཁ࠷খݶͷใ w Ϣʔβʔ໊ϗετ໊ w ΧϨϯτσΟϨΫτϦ w
ϒϥϯν໊ w ऴྃεςʔλε w ͍͍ײ͡ͷิ
ϓϩϯϓτ ৭ w ৭ͷௐ w λʔϛφϧଆͰઃఆ͞Ε͍ͯΔΧϥ ʔύϨοτͷઃఆͱטΈ߹Θͳ͍ ߹ʹઃఆ͢Δ w ͨ͘͞Μͷ৭Λଟ༻ͤͣʹɺͰ͖
Δ͚ͩγϯϓϧʹ·ͱΊΔɻ
ϓϩϯϓτ ද߲ࣔ w ؔfish_prompt w ࠨଆͷϓϩϯϓτͷઃఆ w Ϣʔβʔ໊ϗετ໊ɺΧ ϨϯͱσΟϨΫτϦͳͲΛ දࣔ
w ؔfish_right_prompt w ̌Ҏ֎ͷͱ͖ʹ৭͖Ͱද ࣔ
͍͍ײ͡ͷิ w fi TIͰσϑΥϧτͰ༗ޮʹͳ͍ͬͯΔิ͕͍͍ײ͡ w ώετϦʔ͔ΒೖྗதͷίϚϯυʹԠͯ͡ิΛग़ͯ͘͠ΕΔɻ$USM GͰ TVCNJUͰ͖Δ w ಉ͡ೖྗͰΧϨϯτσΟϨΫτϦʹԠͯ͡ิΛ͢Δ༰͕ΓସΘΔ
ͦͷଞ w HIRG[GΛݺͼग़͢Α͏ͳΧε λϜΩʔόΠϯυ w ΤΠϦΞε w 1"5)
ࠓͷઃఆͰؾʹೖ͍ͬͯΔͱ͜Ζ w QVSFͦͬ͘Γͳγϯϓϧͳݟͨ w ߦఔͷγϯϓϧͳઃఆ͕ͩɺࣗʹඞཁͳػೳʹ͙͢ʹΞΫηεͰ͖Δͱ ͜Ζ w ઃఆϑΝΠϧʹ֎෦ґଘ͕ͳ͍ͷͰɺ fi TIͷΠϯετʔϧ͑͞Ͱ͖Εɺ͙͢ʹ
ಉ͡ڥΛ࠶ݱͰ͖Δ
ଞͷਓͱ͍ͨ͜͠ͱ w OVTIFMM͕ؾʹͳ͍ͬͯΔͷͰɺ͍ͬͯΔਓ͕͍Ε͓͍ͨ͠͠ʂ w "QQMFͷ5FSNJOBMBQQ͕5SVFDPMPSʹରԠͨ͠ͷͰ͍͍͕ͨɺઃఆͷཧ͕ ਏ͍ͷͰɺͦͷลΓ͍͍ײ͡ʹ͍ͯ͠Δਓ͍ͨΒڭ͑ͯཉ͍͠ w /FPWJN͕͖Ͱ͢