One command does it all:
curl -o - https://raw.githubusercontent.com/begriffs/haskell-vim-now/master/install.sh | bash
In less than ten minutes your Vim will transform into a beautiful
Haskell paradise. (Don't worry, it backs up your original
configuration.) It also builds all necessary support binaries
including codex
, hscope
, ghc-mod
, hasktags
, hoogle
and more.
No more wading through plugins trying to make them all work together. In ten minutes you will have a fully functional Vim that looks great and lets you
- inspect types
- evaluate Haskell
- lint and check
- manipulate tags
- hoogle lookup
- pointfree refactor
- tab compelete
- unicode symbols
- highlight DSLs
- work with git
See this wiki page for tips on fixing installation problems.
The commands are organized into logical groups to help you remember them.
<Tab> | Autocomplete with words in file |
<C-space> | Autocomplete with symbols in your Cabal sandbox |
,ht | Show type of expression under cursor |
,hT | Insert type of expression into previous line |
,hl | Run Haskell linter on file |
,hc | Run Haskell compile check on file |
,<cr> | Clear type selection |
,hh | Run Hoogle on the word under the cursor |
,hH | Run Hoogle and prompt for input |
,hi | Run Hoogle for detailed information on word under cursor |
,hI | Run Hoogle for detailed information and prompt for input |
,hz | Close the Hoogle search window |
If you open a tmux terminal alongside MacVim then you can send Vim selections to it. This works well for evaluating things in GHCI.
,rs | Send selected text to tmux |
,rv | Change tmux session, window, and pane attachment |
,g? | Last-committed files (Monday morning key) |
,gs | Git status (fugitive) |
,gg | Git grep |
,gl | Git log (extradition) |
,gd | Git diff |
,gb | Git blame |
\\ | Comment / Uncomment selection |
,a= | Align on equal signs |
,a, | Align on commas |
,a| | Align on vertical bar |
,ap | Align on character of your choice |
,<space> | Fuzzy file find (CtrlP) |
,f | Toggle file browser (nerdtree) |
,sj | Open split below |
,sk | Open split above |
,sh | Open split leftward |
,sl | Open split rightward |
,tg | Generate tags with codex |
,tt | Open/close the tag bar |
C-] | Jump to definition of symbol (codex + hasktags) |
C-\ | Show uses of symbol (hscope) |
,h. | Transform visual selection to pointfree style |
,h> | Transform visual selection to pointed style |
,u | Interactive undo tree |
,ss | Enable spell checking |
,e | Open file prompt with current path |
,<cr> | Clear search highlights |
C-s | Toggle nerd tree, find file |
,r | Redraw screen |
C-h | Move cursor to leftward pane |
C-k | Move cursor to upward pane |
C-j | Move cursor to downward pane |
C-l | Move cursor to rightward pane (redraw is `,r` instead) |
(If you prefer to restore the default screen redraw action of C-l
then add unmap <c-l>
to your .vimrc.local)
After installing this configuration, your .vimrc
and .vim
will
be under version control. Don't alter them, add your own settings to
~/.vimrc.local
instead and your additions will be loaded.