Hacker News new | ask | show | jobs
by wz1000 4066 days ago
Yi[0] is an editor written in Haskell.

[0]: https://github.com/yi-editor/yi

2 comments

It's got an amazing (I'm not sure if that's in a good or bad way) system for reloading config. Config is code. Reconfiguration means recompiling. If you reload the config, you recompile yi and reexec it - file handles and other information is left laying around so you end up in exactly the same state as before. It's slightly scary from the programming side...
Xmonad does the same thing.
Emulates Vim quite nicely, too.
Not really, no. yi badly needs some more love.
Care to elaborate on where it falls down emulating vim?
Yi is really nice, overall. The code is clean too.

I don't remember all of the issues, but there are a ton of small things that make the editor unusable to me. I used it for a couple of weeks, and I spent some time working on these issues, but never had PR-worthy code. Here's what I can remember off the top of my head:

- Startup time is very slow because of the way configuration works. In my local copy, I made a version without runtime configuration, and that solved this problem. This conflicts pretty badly with the whole architecture, so I didn't make a PR.

- :n :N don't work. Opening multiple files from the command line doesn't work.

- :cq doesn't work. I fixed this, but my fix was a hack, so I didn't make a PR.

- Operating on regions with '{' and '}' is off by one line in some directions.

- You can't replace regions with shell commands. For example, using '!}sort' to sort a paragraph.

Cool! I guess my evaluation of Yi/vim emulation was more cosmetic than I thought :)