Slide 1

Slide 1 text

テキストエディタを 知る 2020-12-19 (土) 13:00 〜 kanazawa.rb meetup#100 100回記念 & 年末 LT 大会 muryoimpl

Slide 2

Slide 2 text

何か新しいことを 学びたい なんか飽き ちゃって…

Slide 3

Slide 3 text

でも実用的じゃないと続か ない 簡単すぎて もなぁ… なんか飽き ちゃう… 身近だけど ほどよく謎 で… イメージしや すい何かな いか…

Slide 4

Slide 4 text

テキストエディタを つくってみよう 簡単じゃあ ない! 仕事で毎日 使うじゃん イメージしや すい… 飽きるかも しれんが…

Slide 5

Slide 5 text

コミットログ書ける程度のものを ターゲットにしてみよう 普通のコミットログ 書くのにそんな高度 な編集機能はいら んだろう(マジ? ここを キャンプ地とし よう

Slide 6

Slide 6 text

でもどうやって 作るんだ? ナニモ ワカラナイ

Slide 7

Slide 7 text

どうやってテキストエディタを作るんだ? ● イベントループで待ち受けて、キー入力を受け取ってなにかするくらいはわかるけ ど…基礎知識が足りない ● テキストエディタは C 言語で書かれているものが多いが、私は C 言語に明るくない ● 既存のエディタのソースは参考になるんだろうが、私は C 言語に明る(ry ● Ruby で書かれた Textbringer や Go で書かれた micro があるが、それぞれ何の ためにこの変更をやっているのか?まではコミットログからは詳細にわからない… 基礎知識が足りない困った

Slide 8

Slide 8 text

どうやってテキストエディタを作るんだ? ● Textbringer 作者の shugo さんは、toruby07の発表 で参考として、 『The Craft of Text Editing』https://www.finseth.com/craft/ を挙げているがいき なりはちょっとむずかしい感じだった ● 簡易的なエディタをつくろう、というような連載記事 (2, 3回くらいのもの) は見つかる んだけど、それほど説明が詳しいわけでもないし、それだとすぐに完結してしまう

Slide 9

Slide 9 text

よさそうなサイトを発見!!

Slide 10

Slide 10 text

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 言語の文法には説明はないが、利用しようとするものの意味にはちゃんと言及が ある

Slide 11

Slide 11 text

やってみている感想 なるほど…

Slide 12

Slide 12 text

やってみている感想 (まだまだ全然終わらない) ● 記憶に残るように、英語で読み、写経して、解説の概要をコミットログに残しながら 進めているので時間がかかっている。が、続いている。 ● 現在 50 step 目あたり。Ctrl-Q で終了できる、エスケープシーケンスを駆使してウイ ンドウサイズを取得する、キー入力でカーソルを上下左右に動かせる、まだ vim で いうノーマルモードのみ、という状態。 ● エスケープシーケンスってコンソールに色つけるだけじゃないんだぞ!っていうのを 思い知らされている。 ● 遠回りしている感はあるが、それぞれのやっていることの意味は解説されていて理 解できるので、やっていることに納得感はある。(重要)

Slide 13

Slide 13 text

やってみている感想 (まだまだ全然終わらない) ● Makefile があるので、保存時にタブをスペースに変換している処理が入っていると いきなりつまづきます。 ● step ごとに make して動かせる、変化を目で確認できるので、なかなか楽しい。 ● 50 step 目現在で、C 言語初心者がつまづきそうなポインタの使い方はされていな いので、C 言語の入門書読んだ程度の人であれば少なくとも 50 step 目までは到 達できます。 ● いつになったら自作テキストエディタをつくるというスタート地点に立てるのか今のと ころ未定なところが危険。

Slide 14

Slide 14 text

やってみている感想 (まだまだ全然終わらない) 正月休み使っても完走に至らない見込みなので、次回のもくもくもこれをやっている可能 性は否定できません… オレはようやくのぼりはじめたばかりだからな このはてしない kilo の step をよ… 未完