Friday, March 13, 2009

Yi 0.6.0 Release Notes

Yi 0.6.0 Release Notes


Yi is a text editor written in Haskell and extensible in Haskell. The long-term goal of the Yi project is to provide the editor of choice for Haskell programmers.

Yi is now a fully usable editor for the unix console. The community is growing: the #yi irc channel on freenode has about 20 people. They might be able to help with your first steps!


Using cabal install:

cabal update
cabal install yi-0.6.0 -fvty


  • A purely functional editor core
  • Key-bindings written as parsers of the input
  • Emacs, Vim and (partial) Cua emulations provided by default
  • Console front-end (Gtk2Hs and Cocoa front-ends in development)
  • Static configuration (XMonad style) for fast load
  • Haskell support:
    • Lexical highlighting and (unicode-based) beautification.
    • Layout-aware parenthesis-matching
    • Auto-indentation
    • cabal-build within the editor
  • Syntax highlighting for a number of other languages (latex, python, perl, …)


This release is brought to you by:

  • Aleksandar Dimitrov (vim patches)
  • Anders Karlsson (parser testing)
  • Corey O’Connor (vty maintainer)
  • Daniel Schoepe
  • Deniz Dogan (javascript lexer)
  • Dennis Griffith
  • Gustav Munkby (cocoa frontend maintainter)
  • Gwern Branwen (article reader mode)
  • Jean-Philippe Bernardy (general maintainer)
  • Jeff Wheeler (UI work)
  • Kalman Noel
  • Kevin Ballard
  • Krzysztof Goj (vim patches)
  • Michael Dagitses
  • Nicolas Pouillard (vim keymap maintainter)
  • Sasha Rush
  • Stanisław Pitucha

and all the contributors to the previous versions.

Also, Yi would not exist without all the work put into the Haskell platform. It depends on many packages: Cabal, Diff, array, containers, directory, process, old-locale, base, binary, bytestring, derive, data-accessor, data-accessor-monads-fd, data-accessor-template, filepath, fingertree, ghc, ghc-paths, monads-fd, pointedlist, pureMD5, random, regex-base, regex-tdfa, rosezipper, split, time, transformers, utf8-string, uniplate, unix-compat, vty


Anonymous said...

Installation instructions don't work for me, see:

This is using GHC 6.8.2, on a very clean machine (I've installed only the the base GHC packages from Ubuntu Jaunty debs, and Haskell packages needed to get cabal-install to work)

ertai said...


As said in the README file, Yi now depends on at least ghc 6.10.1.

Anonymous said...

Ah, cheers!

Of course, I didn't read the README because I didn't download the tarball, because I tried to use 'cabal install' (as instructed above :-)


Michael O'Keefe said...

Way cool editor! I'm excited about this!

I browsed around in ~/.yi/yi.hs and Config.hs at but I couldn't find how to configure "soft tabs" (in vim this would have been ":set expandtab" and ":set tabstop=4"). Is that functionality available yet? Note I'm talking about wanting to put in 4 white spaces for each press of the <tab> key (\t), not tabbed editing. Thanks!

Sebastian Sylvan said...

Why is this unix only?
I mean it's a text editor, not a video card driver, surely this should be portable?

Here are the culprits:
cabal: Error: some packages failed to install:
terminfo- failed during the configure step. The exception was:
sh: runGenProcess: does not exist (No such file or directory)
unix- failed during the configure step. The exception was:
sh: runGenProcess: does not exist (No such file or directory)
vty- depends on unix- which failed to install.
yi-0.6.0 depends on unix- which failed to install.

VoidEx said...

Sebastian Sylvan, I have installed it on windows. It can be done by configuring with gtk flag ("cabal configure -fgtk", I don't know, why direct installing with this flag doesn't work, it tries to install vty too), making change in "Yi/Keymap.Vim.hs" - change fileExist from System.Posix.File to doesFileExist from System.Directory.

But at the end I got yi.exe, which writes two errors in console and there are two empty panels in window (one for code and one for project/modules) and I can't load any file there.
Errors are (2 same): _cairo_win32_scaled_font_init_glyph_metrics:GetCharWidth32: parameter is invalid

Any ideas?

Nao said...

I managed to install yi on Windows. But I have same problem with VoidEx. There is blank panel (for project or modules maybe?) that is of no use on the left side of the window. Also configuration doesn't seem to be working. I put sample yi.hs on "C:\Documents and Settings\Username\.yi" but I can manage to type only when I run yi.exe with --as=emacs flag. Without the flag yi complains "error: keymap not defined". Is that directory wrong for yi.hs?