Saturday 29 May 2021

vim 側

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: