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
テキストエディタを知る / Getting to Know a Text Editor
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
muryoimpl
December 19, 2020
Programming
160
0
Share
テキストエディタを知る / Getting to Know a Text Editor
Kanazawa.rb#100 100回記念 & 年末 LT 大会 の二次会で話したスライド。
muryoimpl
December 19, 2020
More Decks by muryoimpl
See All by muryoimpl
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
1.2k
人魚とたわむれる
muryoimpl
0
49
Kanzawa.rbのLT大会を支える技術の裏側を変更する Ruby on Rails + Litestream 編
muryoimpl
0
1.8k
Kanazawa.rb LT大会用/kzlt コマンドの説明 2024/01版
muryoimpl
0
3.1k
kzltコマンドの新たなソリューションについて
muryoimpl
0
3k
俺とTODOアプリ~Linearの変~
muryoimpl
0
2.7k
POSIX文字クラスでの躓き
muryoimpl
0
2.3k
/kzlt コマンドとは
muryoimpl
0
1k
meetup.kzrb.org の更新を考える 事前激闘編
muryoimpl
0
1.6k
Other Decks in Programming
See All in Programming
Radical Imagining - LIFT 2025-2027 Policy Agenda
lift1998
0
250
Spec Driven Development: The End Of Vibe Coding | DevLand 2026
danielsogl
PRO
0
110
へんな働き方
yusukebe
6
2.9k
PDI: Como Alavancar Sua Carreira e Seu Negócio
marcelgsantos
0
100
10年分の技術的負債、完済へ ― Claude Code主導のAI駆動開発でスポーツブルを丸ごとリプレイスした話
takuya_houshima
0
1.7k
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
440
AI活用のコスパを最大化する方法
ochtum
0
370
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
5.9k
Codex CLIのSubagentsによる並列API実装 / Parallel API Implementation with Codex CLI Subagents
takatty
2
860
「速くなった気がする」をデータで疑う
senleaf24
0
150
[PHPerKaigi 2026]PHPerKaigi2025の企画CodeGolfが最高すぎて社内で内製して半年運営して得た内製と運営の知見
ikezoemakoto
0
340
Go_College_最終発表資料__外部公開用_.pdf
xe_pc23
0
130
Featured
See All Featured
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
430
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Un-Boring Meetings
codingconduct
0
260
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
430
Crafting Experiences
bethany
1
110
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
670
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
260
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
150
Agile that works and the tools we love
rasmusluckow
331
21k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
150
Transcript
テキストエディタを 知る 2020-12-19 (土) 13:00 〜 kanazawa.rb meetup#100 100回記念 &
年末 LT 大会 muryoimpl
何か新しいことを 学びたい なんか飽き ちゃって…
でも実用的じゃないと続か ない 簡単すぎて もなぁ… なんか飽き ちゃう… 身近だけど ほどよく謎 で… イメージしや
すい何かな いか…
テキストエディタを つくってみよう 簡単じゃあ ない! 仕事で毎日 使うじゃん イメージしや すい… 飽きるかも しれんが…
コミットログ書ける程度のものを ターゲットにしてみよう 普通のコミットログ 書くのにそんな高度 な編集機能はいら んだろう(マジ? ここを キャンプ地とし よう
でもどうやって 作るんだ? ナニモ ワカラナイ
どうやってテキストエディタを作るんだ? • イベントループで待ち受けて、キー入力を受け取ってなにかするくらいはわかるけ ど…基礎知識が足りない • テキストエディタは C 言語で書かれているものが多いが、私は C 言語に明るくない
• 既存のエディタのソースは参考になるんだろうが、私は C 言語に明る(ry • Ruby で書かれた Textbringer や Go で書かれた micro があるが、それぞれ何の ためにこの変更をやっているのか?まではコミットログからは詳細にわからない… 基礎知識が足りない困った
どうやってテキストエディタを作るんだ? • Textbringer 作者の shugo さんは、toruby07の発表 で参考として、 『The Craft of
Text Editing』https://www.finseth.com/craft/ を挙げているがいき なりはちょっとむずかしい感じだった • 簡易的なエディタをつくろう、というような連載記事 (2, 3回くらいのもの) は見つかる んだけど、それほど説明が詳しいわけでもないし、それだとすぐに完結してしまう
よさそうなサイトを発見!!
Build Your Own Text Editor • URL: https://viewsourcecode.org/snaptoken/kilo/ • 元々
http://antirez.com/news/108 で公開されていたものらしい • kilo という、単一の C 言語のファイル 約1000行 で構成されたテキストエディタを作 る過程が、184 step にも渡って解説されている • ソースコード: https://github.com/antirez/kilo • 実は有志によって解説部分が完全ではないものの日本語化されている ◦ https://github.com/algebroid/learn-kilo • C 言語の文法には説明はないが、利用しようとするものの意味にはちゃんと言及が ある
やってみている感想 なるほど…
やってみている感想 (まだまだ全然終わらない) • 記憶に残るように、英語で読み、写経して、解説の概要をコミットログに残しながら 進めているので時間がかかっている。が、続いている。 • 現在 50 step 目あたり。Ctrl-Q
で終了できる、エスケープシーケンスを駆使してウイ ンドウサイズを取得する、キー入力でカーソルを上下左右に動かせる、まだ vim で いうノーマルモードのみ、という状態。 • エスケープシーケンスってコンソールに色つけるだけじゃないんだぞ!っていうのを 思い知らされている。 • 遠回りしている感はあるが、それぞれのやっていることの意味は解説されていて理 解できるので、やっていることに納得感はある。(重要)
やってみている感想 (まだまだ全然終わらない) • Makefile があるので、保存時にタブをスペースに変換している処理が入っていると いきなりつまづきます。 • step ごとに make
して動かせる、変化を目で確認できるので、なかなか楽しい。 • 50 step 目現在で、C 言語初心者がつまづきそうなポインタの使い方はされていな いので、C 言語の入門書読んだ程度の人であれば少なくとも 50 step 目までは到 達できます。 • いつになったら自作テキストエディタをつくるというスタート地点に立てるのか今のと ころ未定なところが危険。
やってみている感想 (まだまだ全然終わらない) 正月休み使っても完走に至らない見込みなので、次回のもくもくもこれをやっている可能 性は否定できません… オレはようやくのぼりはじめたばかりだからな このはてしない kilo の step をよ…
未完