I use Vim with the following plugins:
* ale — For asynchronous syntax checking.
* nerdcommenter — For adding and removing comments quickly.
* paredit — For structured editing of S-expressions.
* vim-mucomplete — For autocomplete.
* vim-slime — For sending text to a live REPL. (Note that this is not related to Emacs' SLIME; vim-slime merely sends text to REPLs.)
With the enhancements provided by these Vim plugins, I am able to use Vim to write comfortably in many languages (C, Common Lisp, CSS, HTML, JavaScript, Markdown, OCaml, Prolog, Python, R, Racket, Scheme, sh).
For code navigation, these options are available:
* Use Vim's :grep
feature with the Silver Searcher (ag
).
* Use Vim's built-in Cscope interface.
* Use GNU Global and the gtags-cscope.vim plugin that comes with it.