NeoVIM or VIM on m1 MacBookPro?
For years I was a die hard user of vi. It was my goto editor of choice. Simple, yet powerful, if you knew some of the commands and understood its basics. Without fail it was available on all the unix and linux servers. In short, it did the job.
Yet as IDEs advanced, it missed some of the features that I really liked when programming, such as code completion and syntax error highlighting.
It was the reason, I started to use Atom and then, after overcoming my anti-Microsoft beliefs, Visual Studio code.
These features, are now available via LSP (Language Server Protocol) for Vim and NeoVIM. Ironically LSP was developed by Microsoft for Visual Studio Code and is now an open standard.
So the question, was should I try using NeoVIM or just stick with VIM? I’d looked at NeoVIM briefly a while back and didn’t really understand what the difference was. NeoVIM was a rewrite focusing specifically on APIs, extensibility and as being a drop in replacement for vi/VIM. I didn’t understand what the advantage was to me as a general user.
To that end, I thought I’d set both up, via googling and see what the difference were.
Now before you start this yourself. Be aware, that configuring and tweaking everything to your liking, can be time consuming. Then you have to remember what you did and leverage that an on going basis — so every machine will need to be setup the same.
It can make you very productive but just think of that initial learning curve.
What I learnt through the process is, besides the different configuration files, is that there is now feature parity for the most part between the two editors. A few features like neovim telescope are unique to neovim only.
I setup vim and then decided to try NeoVIM. So my setup for NeoVIM is a superset of the VIM configuration. I simply had learnt more and put it to use when I setup NeoVIM.
For now I’ve decided to go with NeoVIM and have Vim available as a fallback. Such that I aliased vim to nvim with alias vim="nvim"
.
For both I used a plugin manager vim-plug.
The plugins I’ve installed for neovim are:
- ‘preservim/nerdtree’
- ‘preservim/nerdcommenter’
- ‘tiagofumo/vim-nerdtree-syntax-highlight’
- ‘Xuyuanp/nerdtree-git-plugin’
- ‘ryanoasis/vim-devicons’
- ‘https://github.com/junegunn/fzf', { ‘do’: { -> fzf#install() } }
- ‘neoclide/coc.nvim’, {‘branch’: ‘release’}
- ‘dense-analysis/ale’
- ‘sheerun/vim-polyglot’
- ‘mbbill/undotree’
- ‘tmhedberg/matchit’
- ‘vim-airline/vim-airline’
- ‘vim-airline/vim-airline-themes’
- ‘mattn/webapi-vim’
- ‘tpope/vim-fugitive’
- ‘tpope/vim-surround’
- ‘francoiscabrol/ranger.vim’
- ‘sonph/onehalf’, { ‘rtp’: ‘vim’ }
- ‘rust-lang/rust.vim’
- ‘ap/vim-css-color’
- ‘mhinz/vim-startify’
- ‘nvim-lua/plenary.nvim’
- ‘nvim-telescope/telescope.nvim’
- ‘frazrepo/vim-rainbow’
My configuration is still a little fluid. If you’ve got some tips, please leave them in the comments. What have you chosen? What did you like or dislike about a plugin?