https://github.com/debajyati/efficienvim
A Highly Efficient & Multifaceted Neovim Starter Configuration entirely in lua with Lazy.nvim
https://github.com/debajyati/efficienvim
dotfiles editor editorconfig git-integrated ide lua neovim neovim-configuration neovim-setup nvim nvim-config nvim-configs nvim-lua preconfigured preconfigured-distribution starter-configuration
Last synced: about 2 months ago
JSON representation
A Highly Efficient & Multifaceted Neovim Starter Configuration entirely in lua with Lazy.nvim
- Host: GitHub
- URL: https://github.com/debajyati/efficienvim
- Owner: Debajyati
- License: mit
- Created: 2023-12-09T19:09:42.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-02T13:15:56.000Z (4 months ago)
- Last Synced: 2025-02-17T05:33:32.035Z (4 months ago)
- Topics: dotfiles, editor, editorconfig, git-integrated, ide, lua, neovim, neovim-configuration, neovim-setup, nvim, nvim-config, nvim-configs, nvim-lua, preconfigured, preconfigured-distribution, starter-configuration
- Language: Lua
- Homepage:
- Size: 13.2 MB
- Stars: 17
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

Note: This is only a starter configuration to get started with Neovim with Efficiency & Enjoyment.
After installation, you should remove the `.git` folder so that you can add your own repo later and fully customise(ricing) your Neovim on your own liking & preferences.## 👀 Requirements
- Make sure you know some basic vim commands.
- [Nerd Fonts](https://www.nerdfonts.com/font-downloads)
- [Neovim 0.10 or above (_Not_ including nightly)](https://github.com/neovim/neovim/releases/tag/stable)
- gcc (GNU C Compiler)
- node.js
- A clipboard tool is necessary for the integration with the system clipboard (see [`:help clipboard-tool`](https://neovim.io/doc/user/provider.html#clipboard-tool) for supported solutions)
- `xclip` is recommended for WSL users.
- Terminal with true color support (for the default theme, otherwise it is dependent on the theme you are using)
- Optional Requirements:
- [ripgrep](https://github.com/BurntSushi/ripgrep) - live grep telescope search (`ps`)
- [lazygit](https://github.com/jesseduffield/lazygit) - lazygit ui toggle inside NeoVim (`:LazyGit`)
### Note
Efficienvim is available in two different versions.
- The `main` branch is the **default** one that's the *ordinary* ***(easy to rewrite)*** version.
It is the branch you are looking for if you want to get config as template and customise in beast mode based on your specific needs.
It uses `Neotree` plugin as its file-explorer(which is auto-opened at the left-side of the Neovim window at startup) instead of the `Netrw` file-explorer that comes with Neovim.
It doesn't have any **dashboard** that comes up start up.
- The `enhanced` branch is the more **advanced** (with more plugins as *better* features) and ***(user-friendlier)*** version.
It uses `Oil.nvim` (you will be able to edit the file system like a regular buffer) and `Nvim-tree` plugins as its file-explorers.
It has a beautiful **dashboard** which opens at startup.## 🛠️ Installation
Efficienvim is supported better on MacOS, Linux & WSL.
If you use Windows then installing in WSL is Recommended.### Linux/Mac OS/WSL (Unix)
#### Make a backup of your current nvim and shared folder
```bash
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
```#### Clone the repository
##### Complete Installation(Both branches, both versions)
```bash
git clone https://github.com/Debajyati/Efficienvim ~/.config/nvim
nvim
```##### Seperate Installation(Installing a specific version/branch)
```bash
git clone -b main --single-branch https://github.com/Debajyati/Efficienvim ~/.config/nvim # Installing the only the ordinary version (branchname - 'main')
nvim
```
Or,
```bash
git clone -b enhanced --single-branch https://github.com/Debajyati/Efficienvim ~/.config/nvim # Installing the only the enhanced version (branchname - 'enhanced')
nvim
```### Windows (Powershell Core or Windows Powershell only. Don't use Command prompt.)
#### Make a backup of your current nvim and nvim-data folder
```sh
Rename-Item -Path $env:LOCALAPPDATA\nvim -NewName $env:LOCALAPPDATA\nvim.bak
Rename-Item -Path $env:LOCALAPPDATA\nvim-data -NewName $env:LOCALAPPDATA\nvim-data.bak
```#### Clone the repository
##### Complete Installation(Both branches, both versions)
```sh
git clone https://github.com/Debajyati/Efficienvim $env:LOCALAPPDATA\nvim
nvim
```
##### Seperate Installation(Installing a specific version/branch)
```sh
git clone -b main --single-branch https://github.com/Debajyati/Efficienvim $env:LOCALAPPDATA\nvim # Installing the only the ordinary version (branchname - 'main')
nvim
```
Or,
```sh
git clone -b enhanced --single-branch https://github.com/Debajyati/Efficienvim $env:LOCALAPPDATA\nvim # Installing the only the enhanced version (branchname - 'enhanced')
nvim
```### Tip
Always run `:checkhealth` after any configuration changes to diagnose any problem with the configuration (if any) so that necessary steps can be taken.## 👨🏽💻 Initial Setup
#### Install Preferred LSP
Enter `:LspInstall` or `:MasonInstall` followed by the name of the server you want to install
Example: `:LspInstall clangd` or `:MasonInstall clangd` for C/C++#### Install Treesitter(language parser in simple words, which enables better syntax highlighting)
Enter `:TSInstall` followed by the name of the language you want to install
Example: `:TSInstall c` for c language#### Debugger Support
Efficienvim won't come with DAP(Debug Adapter Protocol).
If you want debugging support you would need to install [`nvim-dap`](https://github.com/mfussenegger/nvim-dap) & [`nvim-dap-ui`](https://github.com/rcarriga/nvim-dap-ui) first with lazy.nvim(the plugin manager Efficienvim uses) or any other plugin that gives debugger support in Neovim.### How to Manage Installed plugins?
- `:Lazy` - opens the Lazy.nvim ui(A graphical status window)
- `:Lazy check` - checks for plugin updates
- `:Lazy update` - applies any pending plugin updates
- `:Lazy clean` - removes any disabled or unused plugins
- `:Lazy sync` - updates and clean plugins
Run `:h Lazy` for more info.
### How to Manage Installed LSPs
- `:Mason` - opens a graphical status window
- `:MasonUpdate` - updates all managed registries
- `:MasonInstall ...` - installs/re-installs the provided packages
- `:MasonUninstall ...` - uninstalls the provided packages
- `:MasonUninstallAll` - uninstalls all packages
- `:MasonLog` - opens the mason.nvim log file in a new tab window
Run `:h Mason` for more info.
### Tree Structure of the Configuration Files
```md
.
├── init.lua
├── lazy-lock.json
└── lua
└── config
├── autocmds.lua
├── keymaps.lua
├── lazy.lua
├── lspsettings.lua
├── noicesettings.lua
└── options.lua
```## Enhanced Branch Showcases
### Efficienvim Dashboard in transparent/translucent terminal
### Lazy.nvim UI with Rounded Borders
### Telescope Find Files
https://github.com/user-attachments/assets/977a1170-e8ff-4c84-9312-0d7946163995### Calling `lf` within neovim
https://github.com/user-attachments/assets/d5cfbcd6-1a1f-4c2d-80bb-2d8fe5dcbb2f### Using Oil.nvim
https://github.com/user-attachments/assets/92b218bf-3bf6-4b3b-8b10-592ca24fb719### Telescope Git Files
https://github.com/user-attachments/assets/4211acd5-d5b7-4029-9750-9e41a438bbe7### Nvim-tree as File Explorer Sidebar and Toggleterm as Terminal
### Changing Colorschemes with Live Preview
https://github.com/user-attachments/assets/e08a659e-7fc9-46c8-bc0c-2a17798a5329### cmp window with borders for getting windows better distinguishable
### cmdline completion
## Credits ✨
Kudos to the entire neovim community out there, all the plugin authors & the following repositories that made me know, how to properly configure Neovim.
- [Lazy.nvim](https://github.com/folke/lazy.nvim)
- [NVChad](https://github.com/NvChad/NvChad)
- [AstroNvim](https://github.com/AstroNvim/AstroNvim)
- [LunarVim](https://github.com/LunarVim/LunarVim)
- [LazyVim](https://github.com/LazyVim/LazyVim)
- [ThePrimeagen](https://github.com/ThePrimeagen/init.lua)