nvdots
nvdots copied to clipboard
A modern Neovim configuration with full support for Python, C++, Java, Web Dev and more...
NVDOTS
Personalized Development Environment ❤️👨💻
Brief description of how this configuration actually works. Hit the ⭐ button if you found this useful.What is this
Handcrafted neovim
configs for the ultimate CLI dev experience, completely in lua
For a best yet minimal config, go to minimal.nvim
Screenshots
Dashboard using alpha.nvim
Code Conceal
When code conceal is off
LimeLight for Better focusing
File Browsing with nvim-tree and Telescope file_browser extension
Git usng Lazygit right inside Neovim
Prerequisites
Before you begin, ensure you have met the following requirements:
- You have installed the latest version of
neovim
- If having issues, these Instructions will help you do that, Checkout complete automated installation script at bottom of the documentation.
Before we proceed, File Structure is like
If the reader is well versed or, has a general experience with shell scripting, Lua language or, know what they are doing then they may skip this section. But it advised to take a good understanding of the file structure before making any changes.
nvim
├── after
│ ├── indent
│ ├── queries
│ │ ├── cpp
│ │ ├── lua
│ │ └── python
│ └── syntax
├── bin
│ ├── img
│ └── snippets
├── init.lua
├── lua
│ ├── core
│ │ ├── abbreviations.lua
│ │ ├── cmds.lua
│ │ ├── colorscheme.lua
│ │ ├── comment.lua
│ │ ├── consts.lua
│ │ ├── dressing.lua
│ │ ├── files.lua
│ │ ├── keymaps.lua
│ │ ├── options.lua
│ │ ├── plugins.lua
│ │ └── utils.lua
│ └── plugins
│ ├── alpha.lua
│ ├── cmp.lua
│ ├── gitsigns.lua
│ ├── lspInstaller.lua
│ ├── lsp.lua
│ ├── lsp-saga.lua
│ ├── null-ls.lua
│ ├── nvim-tree.lua
│ ├── shared
│ │ └── ascii_art.lua
│ ├── telescope.lua
│ ├── todo.lua
│ ├── toggler.lua
│ ├── toggleterm.lua
│ └── treesitter.lua
└── README.md
Install language servers
Mostly available via npm
npm install -g typescript typescript-language-server vscode-langservers-extracted vls @tailwindcss/language-server yaml-language-server @prisma/language-server emmet-ls neovim graphql-language-service-cli graphql-language-service-server @astrojs/language-server bash-language-server
Lua, Pyright, Deno, Gopls and rust-analyzer available in Arch/Manjaro repos
Check your package manager for availability if not on an Arch based distro - brew, apt etc.
sudo pacman -S lua-language-server pyright deno rust-analyzer gopls shellcheck
Install formatters
prettier with npm
npm i -g prettier
shfmt is in the AUR
sudo pacman -S shfmt # From the AUR
go install mvdan.cc/sh/v3/cmd/shfmt@latest # With the help of GO
stylua is in the AUR
sudo pacman -S stylua
Check your package manager for availability if not on an Arch based distro - brew, apt etc.
autopep8 for python is in Manjaro/Arch repos
sudo pacman -S autopep8
Check your package manager for availability if not on an Arch based distro - brew, apt etc.
yamlfmt for yaml available with pip
sudo pip install yamlfmt
Installation
# move to home dir
cd ~
# back up current config
cp -r ~/.config/nvim ~/.config/nvim.backup
# clone repository
git clone https://github.com/adityastomar67/nvdots.git ~/.config
# Launch nvim for the first time with this command to install plugins
nvim +PackerInstall
# exit nvim and Then compile the loader file
nvim +PackerCompile
Additionals
Adding custom Snippets
The conifg uses luasnip paired with friendly-snippets, my own fork for VS Code style snippets. You can add your own snippets to the config snippets directory . You'll also need to edit the snippets/package.json to be able to load your snippets in the correct filetype. One test snippet is included as an example.
Plugins
For a list of plugins, see the plugins file.
More Info
Looking for my zsh
and other cli
configs? See Dotfiles
Resources and inspiration
Plugin Finder Noting really, if you have (Neo)vim installed then you can just backup your previous config if any, then just clone this repo and create a symlink of this configuration to your ~/.config/nvim
SUGGESTION
- Font: Cascursive - Courtesy of @sainnhe (You can find fonts inside my dotfiles repo)
- dot_files
- Wallpaper
For Complete Automated install
Run this code snippet in your terminal (Coming soon...)
curl -sL https://bit.ly/Fresh-Install | sh -s -- --vim
TODO
- [ ] Better Documentation
- [x] New Screenshot
- [ ] Get LuaSnip working with dynamic changes enabled
- [ ] Change the keybinding of hopping from "f" to some other key
- [ ] Add hydra plugin
- [x] Changing name to nvdots.
- [ ] Add Mason.nvim
- [ ] Create a version release
- [ ] New Ideas for v2