The aim of the shim project is to provide better support for editing Haskell code in VIM and Emacs by using the GHC API to provide features such as identifier completion, type lookup, background compilation and much more. For now, there is only an Emacs mode that uses the shim server. If you're interested in helping with VIM integration see http://shim.haskellco.de/trac/shim/wiki/ShimVim for enabling the preliminary vim support. Requirements: ============= Needs ghc-6.6 (because of GHC API) and is only tested with GNU Emacs on Linux and Mac OS X. Additionally, you need the following haskell packages: System.FilePath: http://www-users.cs.york.ac.uk/~ndm/projects/libraries.php Cabal: >= 1.2.0 Installation: ============= chmod u+x Setup.hs ./Setup.hs configure ./Setup.hs build ./Setup.hs install Add this to your ~/.emacs file with the appropiate filenames: (add-hook 'haskell-mode-hook (lambda () (add-to-list 'load-path "~/emacs/shim/") (require 'shim))) Then you can start the additional functionality with `M-x' shim. Try `C-c Tab` with the cursor on an identifier or an import line to test if the installation works. You should test with the shim sources first, since it doesn't work with all GHC extensions yet (like CPP). There are additional keybindings at the bottom of shim.el that are commented out because they clobber bindings of the default haskell-mode. But you have to uncomment them to enable things like compile-on-save.