At some point or the other, we have all sworn at our IDEs for being painfully slow, buggy or both. Here's vim
to the rescue. This is a simple and non-intrusive vim config that can replace your IDE to some extent. It is simple because there are not too many bells and whistles. It is non-intrusive because it does not assume any conveniences on your behalf (i.e not a lot of customisations and re-mappings)
Clone the repository and run the install script:
git clone https://github.com/pct960/vim-setup && cd vim-setup ./install
Apart from the features the vanilla vim configuration provides (line numbers, relative line numbers, auto indent etc.), the config has been extended to do a few more things.
- Nerdtree is automatically loaded when vim is opened
- Opening a file places the focus on the file instead of on the nerdtree pane
- Closing a file closes both the file and the nerdtree pane (provided no other tabs are open)
- To open a file in a new tab, press
t
, and to open it in split mode presss
(This is avim
feature I know, but do read further) - Now, to easily switch between tabs use
Ctrl ←
andCtrl →
.(Mission control shortcuts will need to be disabled for this work on macOS) The NERDTree pane will be available on all tabs, thanks to NERDTreeTabs. - To navigate directly to a specific tab use
,<tab number>
- A terminal can be opened from inside
vim
using,<space>
. This brings upfish
, if present, otherwise, brings upbash
. It can be closed by simply pressingEsc
twice.
Autocomplete was deliberately not added since adding language servers and a lot of plugins will severely slow it down. The objective of this project was to have a fast, simple and clean alternative to a bulky IDE. Adding features that make it slow would be counterproductive. That being said, features that do not compromise the smooth experience of vim
can always be added.
Feel free to open a pull request, raise an issue or a feature request.