
For most languages/platform I've worked with, the following combo always served me very well: - zsh: very powerful bourne-compatible shell - tmux: terminal multiplexer with powerful scripting features, this provides highly flexible session management for software projects or any other admin task done through terminal - vim: one of the best text editors ever, with a very active community and thousands of plugins for most programming languages(a nice selection of haskell plugins) Using these tools as an IDE might seem strange/hard at first(especially for users of single-program IDEs), but once the initial learning curve is passed you will find yourself with a very flexible environment that you can adapt for basically any kind of programming language. After installing the following vim plugins I had a full-featured haskell IDE: General-purpose plugins: - UltiSnips: best snippets plugin for vim - Syntastic: show syntax errors and hlint warnings everytime you save - Slimux: Control tmux panes from vim. I use this with a scratchpad to quicky test code in ghci Haskell-specific plugins: - vim2hs: many haskell-related features, see github page for description - nego-ghc: smart code completion - ghcmod-vim: ghcmod integration - vim-hoogle: easily make hoogle queries from vim And for those who think terminal applications are ugly, here's a screenshot of my IDE in action: https://www.dropbox.com/s/ia3hm69vkxdvcsf/haskell-ide.png