TAIM (Alpha Version): GHCI integration with vim
Overview
TAIM aims to couple either a local or remote ghci instance with vim. Similar to SLIME which does the same thing for emacs and common lisp. In short you can evaluate code in place, and receive feedback, without having to reload the whole buffer into ghci.
Dependencies
- Python 2.6
- Vim 7.2
- Haskell Platform
- Only tested on Linux so far
Current Usage
- Download taimReleaseAlpha.tar.gz
- Unpack it, and in the taimReleaseAlpha directory run cabal install
- Run the taimReleaseAlpha program, under ~/.cabal/bin/taimReleaseAlpha
- Open up vim and source taim.vim, or just install taim.vim as a plugin
- In vim :StartTaim which will split the window for you
- In command mode press<C-x><C-e> (Control+x followed by Control+e) to evaluate the line the cursor is currently at.
Screencast
Click the image below to see a video of it running. You will see :EvalCode at the bottom every time <C-x><C-e> is pressed:
TODOs
There is a ton left to do, some of the major ones being:- Evaluate functions that won't work directly in ghci (ie. without let)
- Handle imports
- Handle grouping functions via module
- Handle module renaming
- Severely clean up code
- Start taim.hs executable from taim.vim
- Handle type/class definitions
- Auto installer for vim script
- Test on Windows
- Fix scrolling issues on toggle of windows
- Consistent output flushing
- Configuration file to allow placement and size of output window, and network location of ghci session.
Conclusion
This is pretty basic right, but I've already been finding it pretty useful. It makes it alot easier to toy around in ghci right now, and can hopefully be expanded to be a pretty comprehensive development environment for Haskell.
Comments(2)
2010-06-06 16:06:31
(2010-07-27 02:05:43) Gavin Black said:
It really stands for This Acronym Is Meaningless :PI was originally going after something like SLIME (Superior Lisp Interaction
Mode for Emacs). And planned to do T___ A____ Interaction Mode, but couldn't
think of anything.
I think I may change it to VHIM (Vim Haskell Interaction Mode) for the next
iteration.
(2010-07-25 04:50:40) Jay said:
What does TAIM stand for? Add your comment:
Hardware
Software
- TAIM (Alpha Version): GHCI integration with vim
- CheaTorrent -- An evil BitTorrent client
- Self Modifying 2D Turing Automata
- Competing Conway Life Automata
- X11 Timelapse Desktop Video
- Colored Wolfram Automata With Sound Input
- Pseudo Video Feedback in Processing
- Haskell Cipher Saber
- Illegal FIlenames -- Windows and *nix
- Simple Perl SDL Music Keyboard (Updated)
- Image to Spectrogram
- Pastebin Hell
- OMGWTFRNG (OWR)
- OTP Enhancement : Failure Report
- Java Network File Transfer Tool
- AES Encrypted Filesystem Speeds
- Dual Message Encryption
- PHP Website
- Mp3 Splitting Script
- Random Obfuscation Tool
- Filesystem Speed Comparisons
- Java Based Web Server GUI