Vim は93年に書かれてたものなんですが、今読むと、
絶望的に古くさい
あの当時でも疑問なプログラミングスタイルだな。Cで書かれているのはともかく。
あらゆる場所にある ifdef HOGE_FEATURE
vim.h にシステム依存なものを含めて全部ぶちこんである
structs.h に構造体を集めてある
が、個々の hoge.c にも構造体の定義が .c なファイルの方に
「俺は好きなところにifdef HOGE_FEATUREでパッチを当てるぜ」的な感じ。
編集バッファは memline というdouble linked listなbinary blockなんだが、
Line Property を ad-hoc に追加してある
うーむ。今回は Undo を読むつもりだったんですが、
そこら中に u_sync() があり、そこで undo を区切りる
方式。ところがどうも、undo list は元データと追加データの組で構成されているらしい。
つまり、command pattern ではないわけね。
2015年に「vimは書き直すべきだろ」って記事があって、Rust で書いたものとかはあるらしい。
glib使ってCで書くとか、golang で書くとか、まぁ、いろいろありえるが。Javaはないな。
abbrib とか map! とか、今では疑問な機能も結構あるし、vim-script もいまいちだからなぁ。
明日も、同じZoomで10時から VSCode を読むはずです。あんまり学生がやってくれないのが残念ね。今回は二人だけか。
No comments:
Post a Comment