Home

Awesome

NeoVim as a programming IDE

🏎 🏎 🏎 Need for speed! 🏎 🏎 🏎

This neovim configure file is highly optimized for the impatient. Super lazy loading + After syntax highlight rendering. Render multiple files with treesitter in less than 45ms with ~170 plugins installed (e.g. Open both util.lua(1686 loc) and lsp.lua(1538 loc) from neovim source code in 58.6ms) The setup set all plugins to be lazy loaded and trigger when it needed.

The Packer config locates in branch Packer branch It serves as my personal nvim setup. I am using it as my daily driver. The structure can be messy so it is not a setup for beginner

Battery included

About 150 plugins and 14000 lines of lua and vim code.

Commands

Pager

The config can be used for pager

Difftool and mergetool

It has essential tools for git difftool

Neovim Plugins

There are lots of amazing plugins, I used following plugin a lots

Lint and format moved to null-ls.

Install

Note: I tested it on Mac and linux, not sure about window

Clone the repo

Link nvim to $HOME/.config/

e.g.

ls ~/.config/nvim

~/.config/nvim -> /Users/rayx/github/dotfiles/nvim

On windows the config path is C:\Users\your_user_name\AppData\Local\nvim You need to link or replace above folder

Please install Nerd Fonts(I am using VictorMono) and kitty so font setting in GUI will work as expected

Startup nvim

If you saw error message "Error in packer_compiled: ..." Please press Enter, that will allow packer install the plugins. After all plugins install restart the nvim.

Note: The packages and data will be install to ~/.local/share/nvim

Please backup this folder if necessary

The setup needs nvim0.8+. For earlier release, please check packer branch. A patched nerd font is needed. Also if you start nvim from terminal, make sure it support nerdfont and emoji

missing sqlite, libsqlite3

Some of the plugin I am using depends on sqlite. By default sqlite was installed on MacOS. For other operating system, if you saw error message about sqlite, please following the instruction here to install sqlite

Youtube video recording of install process

Install process

Configure

If you would like to sync to my branch. You can add you own setup in lua/overwrite folder

You can put your own plugins setup in modules/user folder

Shell

External tools

You may need to install following tools to make best of the setup

Parking lots

These tools are good, but due to confliction, less use, or, not suite to my workflow