A hand-rolled Neovim configuration targeting Neovim 0.11+. Uses lazy.nvim as the plugin manager with a modular Lua structure.
Built for Python, Rust, GDScript (Godot), TypeScript/JavaScript, Kotlin, HTML/CSS, and Markdown development.
- Custom unruled colorscheme (bundled as a local plugin)
- LSP with auto-installed servers via Mason
- Autocompletion powered by blink.cmp
- Fuzzy finding with Telescope + fzf-native
- Debugging (DAP) for Python, Rust, and GDScript
- Git integration via gitsigns + Neogit + diffview
- Treesitter-based syntax highlighting
- Dashboard with quick actions and shortcut reference
init.lua # Entry point — bootstraps lazy.nvim
lua/
├── config/
│ ├── options.lua # Editor options (loaded first, sets leader key)
│ ├── keymaps.lua # Global keybindings
│ └── autocmds.lua # Autocommands
└── plugins/
├── ui.lua # Colorscheme, lualine, indent guides, icons
├── dashboard.lua # Alpha-nvim start screen
├── neo-tree.lua # File tree sidebar
├── telescope.lua # Fuzzy finder
├── treesitter.lua # Syntax highlighting & indentation
├── lsp.lua # LSP servers + Mason auto-install
├── completion.lua # Autocompletion + snippets
├── git.lua # Gitsigns + Neogit + diffview
├── dap.lua # Debug adapters (Python, Rust, GDScript)
├── editor.lua # which-key, autopairs, comments
└── unruled/ # Custom colorscheme (local plugin)
Leader key is Space.
| Key | Action |
|---|---|
<Space>w |
Save file |
<Space>bd |
Delete buffer |
<Shift-h> / <Shift-l> |
Previous / next buffer |
<Ctrl-h/j/k/l> |
Navigate windows |
<Ctrl-d> / <Ctrl-u> |
Scroll down / up (centered) |
gc / gb |
Toggle line / block comment |
J / K (visual) |
Move selected lines down / up |
| Key | Action |
|---|---|
<Space>e |
Toggle file tree |
<Space>o |
Focus file tree |
| Key | Action |
|---|---|
<Space>ff |
Find files |
<Space>fg |
Live grep |
<Space>fb |
Find buffers |
<Space>fr |
Recent files |
<Space>fh |
Help tags |
<Space>fd |
Diagnostics |
<Space>fs |
Document symbols |
| Key | Action |
|---|---|
gd |
Go to definition |
gr |
References |
gI |
Go to implementation |
gy |
Type definition |
gD |
Go to declaration |
K |
Hover documentation |
<Space>ca |
Code action |
<Space>rn |
Rename symbol |
<Space>d |
Show diagnostic float |
[d / ]d |
Previous / next diagnostic |
| Key | Action |
|---|---|
<Space>gg |
Open Neogit |
<Space>hs |
Stage hunk |
<Space>hr |
Reset hunk |
<Space>hp |
Preview hunk |
<Space>hb |
Blame line |
]h / [h |
Next / previous hunk |
| Key | Action |
|---|---|
<Space>db |
Toggle breakpoint |
<Space>dc |
Continue |
<Space>di |
Step into |
<Space>do |
Step over |
<Space>dO |
Step out |
<Space>du |
Toggle DAP UI |
<Space>dr |
Toggle REPL |
<Space>dt |
Terminate |
Auto-installed via Mason:
- pyright — Python
- rust_analyzer — Rust
- ts_ls — TypeScript / JavaScript
- kotlin_language_server — Kotlin
- html — HTML
- cssls — CSS
- marksman — Markdown
- lua_ls — Lua
GDScript LSP connects directly to the Godot editor on localhost:6005 (requires Godot to be running).
Auto-installed via Mason:
- debugpy — Python
- codelldb — Rust / C / C++
GDScript DAP connects to Godot on localhost:6006.
- Neovim >= 0.11
- Git
- A Nerd Font (for icons)
makeand a C compiler (for telescope-fzf-native)ncat(for GDScript LSP — only needed for Godot development)
Clone the repo and symlink it to your Neovim config directory:
git clone https://github.com/bearenbey/erenvim.git ~/.config/nvimLaunch Neovim and lazy.nvim will automatically install all plugins on first run.
To try it without affecting an existing config:
git clone https://github.com/bearenbey/erenvim.git ~/.config/nvim-custom
NVIM_APPNAME=nvim-custom nvim