Hi, I would like to start using Yi. I found this tutorial on the web.
http://www.nobugs.org/developer/yi/example-helloworld.html As I understand the tutorial is outdated and quite a few things have changed since then. Is there something more up to date on the web somewhere? One question in particular. I defined some function. How can I get access to that, so that I can do "M-x myFunction"? I found some hint from 2008 that I should look into the Yi.Yi module... but couldn't find a Yi.Yi module. I guess that hint is old, too. I also tried to bind M-r to some function. It complies, but I must nevertheless do something wrong, as M-r is still not recognised as a valid key. I attached my ~/.yi/yi.hs below. I can remember that when I heard from Yi the first time, one of the selling points was, that you could recompile your configuration file on the fly -- just the same way as it works with Xmonad. I love this feature in Xmonad, but I can't find a "recompile"-function or anything similar in the Yi-index on hackage. Is it called something different? Thanks for your help. Thomas -- module Main (main) where import Yi import Yi.Prelude import Prelude () import Yi.UI.Pango (start) import Yi.String (mapLines) import qualified Yi.Keymap.Emacs as Emacs myConfig = defaultEmacsConfig defaultUIConfig = configUI myConfig -- myTheme :: Theme -- myTheme = (configTheme defaultUIConfig) `override` \super self -> super -- { selectedStyle = modelineFocusStyle self -- } myConfigUI :: UIConfig myConfigUI = defaultUIConfig { configFontSize = Just 12 , configTheme = configTheme defaultUIConfig --myTheme , configWindowFill = '~' } someAktion :: Event someAktion = meta (char 'r') someAktion' :: Event someAktion' = meta (char 'r') someK :: Keymap someK = someAktion ?>>! helloWorld someK' :: Keymap someK' = someAktion' ?>>! increaseIndent myKm :: KeymapSet myKm = Emacs.keymap { insertKeymap = someK <|> insertKeymap Emacs.keymap } main :: IO () main = yi $ myConfig { defaultKm = myKm , startFrontEnd = start , configUI = myConfigUI } -- | Increase the indentation of the selection increaseIndent :: BufferM () increaseIndent = do r <- getSelectRegionB r' <- unitWiseRegion Line r -- extend the region to full lines modifyRegionB (mapLines (' ':)) r' -- prepend each line with a space helloWorld :: YiM () helloWorld = withBuffer $ insertN "Hello World!" -- Yi development mailing list [email protected] http://groups.google.com/group/yi-devel
