There is a wide range of tools and corresponding VIM plugins that provide IDE-like features for Haskell development: haskell-language-server (implements the Language Server Protocol, thus needs a VIM LSP client), Intero, Dante, Codex, hdevtools and more. A less feature-rich but stable solution is to have ghcid running next to the editor window as described in 
Haskell Language Server
If you want to use the Haskell Language Server with Vim or Neovim, there are sections in the docs for that:
Assorted plugins for Vim or NeoVim
- haskell-tools.nvim Neovim plugin that sets up Neovim's native LSP implementation to use haskell-language-server and provides various other Neovim tools for Haskell development. Aims to bring the Haskell experience in Neovim on par and beyond that of Visual Studio Code.
- coc.nvim Intellisense engine for Vim8 & Neovim, full language server protocol support as VSCode. Follow haskell-language-server instruction to add support for completion, linting, formatting, go to definition, etc.
- telescope_hoogle Hoogle search from within Neovim.
- nvim-treesitter Recommended for syntax highlighting.
- nvim-treesitter-textobjects Uses tree-sitter to add syntax-aware textobjects (supports various languages, including Haskell).
- vim-test A Vim wrapper for running tests (including Haskell) on different granularities.
- scout Hackage search tool with a Neovim plugin.
- Hindent Haskell pretty printer
- stylish-haskell Haskell code prettifier
- Ale (Asynchronous Linting Engine)
ALE (Asynchronous Lint Engine) is a plugin for providing linting (checking syntax and semantics) in NeoVim 0.2.0+ and Vim 8 while you edit your text files, and acts as a Vim Language Server Protocol client.
Comes with linters cabal_ghc, ghc, ghc_mod, hdevtools, hie, hlint, stack_build, stack_ghc
- Hdevtools taken from the github page:
hdevtools is a command line program powered by the GHC API, that provides services for Haskell development. hdevtools works by running a persistent process in the background, so that your Haskell modules remain in memory, instead of having to reload everything each time you change only one file. This is just like :reload in GHCi - with hdevtools you get the speed of GHCi as well as tight integration with your editor.
This is the Vim plugin that integrates Vim with hdevtools.