Skip to content

empr0r/neovim-ide-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neovim Configuration — Fast. Functional. Ruthlessly Efficient.

This is a lean, keyboard-driven Neovim setup for developers who care about performance and control. Faster than Visual Studio. Less bloated than Emacs. Sharper than your average IDE.

This config focuses on precision and simplicity without sacrificing power. Feature-rich without compromising performance and efficiency.

aperture

Table of Contents


Features Overview

  • Fast Startup — Sub-100ms load time with lazy-loading
  • Nano-style Keybinds — Familiar navigation for newcomers and power users
  • Plugin Keybinds — Logical, low-friction shortcuts for every integrated tool
  • Clipboard Integration — Seamless Wayland clipboard support (wl-clipboard)
  • Built-in LSP — Out-of-the-box support for major languages
  • Treesitter Syntax — Modern, granular syntax highlighting
  • Autocompletion — With nvim-cmp and snippet expansion
  • Integrated Terminal — One keypress away
  • Git Integration — Visual diffs, gutter signs, and staging commands
  • Fuzzy Finder — Fast, file-aware navigation with telescope
  • Theme Switching — Runtime color scheme switching with :SetTheme <name>
  • No Nerd Fonts Required — Clean visuals with standard fonts

File Structure

~/.config/nvim
├── init.lua              # Main config entry
├── lua/
│   ├── plugins/          # Plugin specs and setup
│   ├── colors/           # Theme modules
│   └── utils/            # Helpers (clipboard, theme switching, etc.)

Keybindings

General

Keybind Action
Ctrl + S / o Save file (:w)
Ctrl + Q / x Quit file (:q)
Ctrl + K Cut current line
Ctrl + U Paste
Ctrl + W Search
Ctrl + Z Undo
Alt + E Redo
Ctrl + A Move to beginning of line
Ctrl + E Move to end of line
Leader + w Save
Leader + q Quit
Leader + x Save and quit
Leader + c Close buffer

Navigation

Keybind Action
Ctrl + H/L/J/K Move between windows
Ctrl + Arrows Resize window
Shift + H/L Previous / next buffer
Leader + e Toggle file tree
Leader + f Find files
Leader + g Live grep
Leader + b List buffers
Leader + h Help tags

LSP / Code

Keybind Action
gd Go to definition
gi Go to implementation
gr Find references (Lspsaga)
K Hover docs
Leader + rn Rename (Lspsaga)
Leader + ca Code action
[d / ]d Previous / next diagnostic
Leader + dl Show diagnostics in telescope

Git

Keybind Action
Leader + gs Git status
Leader + gp Git push
Leader + gl Git pull
]g / [g Next / previous hunk
Leader + hp Preview hunk
Leader + hs Stage hunk
Leader + hr Reset hunk

Plugins

Keybind Action
Leader + mp/ms Start/Stop markdown preview
Leader + qo/qc Open/Close quickfix
Leader + lo/lc Open/Close location list
Leader + xx/xX Toggle diagnostics/all/buffer
Leader + cs/cl Show symbols/LSP items
Leader + xL/xQ Location/Quickfix list
Leader + sr Open Spectre
Leader + / Toggle comment
Leader + t Toggle terminal
Ctrl + T Next theme

Theme System

Themes are modular Lua files in lua/colors/ and are switchable at runtime:

:SetTheme oxocarbon

Each theme includes consistent styling for:

  • Statusline / Tabline
  • nvim-tree sidebar
  • GitSigns
  • Popup menus, diagnostics, and UI elements

Official Themes:

  • oxocarbon oxocarbon
  • gruvbox gruvbox
  • everforest everforest
  • tokyonight tokyonight
  • tokyonightmoon tokyomoon
  • catpuccin catpuccin
  • dracula dracula
  • monokai monokai
  • nord nord
  • solarized solarized

Homebrew Themes:

  • aperture aperture
  • nebula nebula
  • verdant verdant
  • sapphire sapphire
  • ronin ronin
  • claret claret
  • bloodsport Bloodsport
  • cafe cafe
  • cafeexpresso cafeexpresso
  • matcha matcha
  • matchamoon matchamoon

Theme cycling is handled with <C-t>, and manual selection uses the :SetTheme command. Because of how jank neovim is at times when you switch to a theme you should restart neovim


Requirements

  • Neovim 0.9+
  • wl-clipboard/XClip for clipboard support
  • Recommended:
    • ripgrep, fd, bat
    • node, npm, python3, pip (for LSPs and formatters)

No Nerd Font dependency. No special terminal required.


Plugin Stack

Core

  • lazy.nvim — plugin manager
  • plenary.nvim — utility functions

UI

  • lualine.nvim — statusline
  • bufferline.nvim — tabline buffer nav
  • nvim-tree.lua — file explorer
  • nvim-web-devicons — optional icons

Navigation

  • telescope.nvim — fuzzy finding
  • nvim-spectre — global search & replace

Editing

  • nvim-autopairs — auto-close brackets
  • Comment.nvim — toggle comments
  • nvim-surround — surround editing
  • vim-table-mode — Markdown table editor

Git

  • gitsigns.nvim — gutter signs
  • vim-fugitive — Git integration
  • git-conflict.nvim — conflict resolution

LSP & Completion

  • nvim-lspconfig — core LSP client
  • mason.nvim, mason-lspconfig.nvim — LSP installer/manager
  • nvim-cmp — autocompletion engine
  • cmp-nvim-lsp, cmp-buffer, cmp-path, cmp_luasnip — completion sources
  • luasnip — snippet engine
  • lspsaga.nvim — LSP UI enhancements
  • none-ls.nvim — formatting and linting

Debugging

  • nvim-dap — core DAP support
  • nvim-dap-ui — debugger UI
  • nvim-dap-virtual-text — inline debug info
  • nvim-nio — async helpers

Markdown

  • markdown-preview.nvim — live Markdown preview

Terminal

  • toggleterm.nvim — terminal integration

Installation

Clone the repo into your Neovim config directory:

git https://github.com/empr0r/neovim-ide-config ~/.config/nvim
nvim

Plugins will install on first launch.


License

MIT. Fork, extend, break it, whatever.

About

Custom config for neovim to be as feature rich and efficient as possible

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages