- Yi (editor)
Infobox Software
name = Yi
caption = Yi in GTK mode
author = Various; primary developer Jean-Philippe Bernardy
latest release version = 0.4.3
latest release date = 29 July 2008
latest preview version = latestDarcs revision
latest preview date = (snapshot)
operating system = POSIX-compatible (minimalMicrosoft Windows support)
platform =Cross-platform ; requires GHC
language = English
genre = Text editor
license =GPL
website = [http://haskell.org/haskellwiki/Yi]Yi is a
text editor written and extensible in Haskell. The goal of Yi is to provide a flexible, powerful and correct editor core dynamically scriptable in Haskell.Yi is a Haskell interpreter [ This is implemented by binding to the
Glasgow Haskell Compiler API; in other words, Yi will call a built-in copy (hs-plugins) of GHC] , very much likeEmacs is anEmacs Lisp interpreter; however, the authors of the Yi paperwho point out that this technique is as powerful as the Emacs method of loading at runtime dynamically typed code but can be accomplished withstatic type d Haskell code - allowing for greater performance and safety. Specifically, Yi is implemented as a small executable program which compiles through GHC the larger body of code which actually constitutes a useful editor; this small 'kernel' can repeatedly recompile (and thus type-check) the extensions. This makes it easy to dynamically hack, experiment and modify Yi despite it being written in a strongly statically typed language. Using Haskell as a first-class extension languages means that other libraries and tools written in Haskell are also readily usable in editor code.The long term goal of the project is to in essence make Yi the editor of choice for Haskell hackers in much the same way that Emacs is the editor of choice for Lisp programmers.
Front ends
Yi can use either gtk2hs or vty as front ends, so users can choose their favorite interface. There is also an experimental
Cocoa frontend."Emulation modes"
The primary emulation modes for Yi are vim and
emacs . Keybindings forvi , mg and nano and other are also provided. Other editor interfaces can be written by the user to extend Yi.References
*
External links
* [http://haskell.org/haskellwiki/Yi Yi Homepage] on the Haskell wiki
Wikimedia Foundation. 2010.