Skip to content

Repository files navigation

Nvim

CILicenseSizeLast Commit

Neovim configuration with fast startup, plugin-per-file organization, and a small toolchain built around mise, stylua, and CI validation.

Tooling

mise is the toolchain manager for this repository. It is used to pin and run project tools, currently stylua.

Structure

lua/
config/ -- bootstrap, editor options, global autocmds
features/ -- local behavior such as formatting and terminal flows
keymaps/ -- mappings split by responsibility
plugins/ -- lazy.nvim plugin specs, one plugin per file
util/ -- shared helpers

Setup

mise install
npm ci

Spotify (smm.nvim)

This config includes iamt4nk/smm.nvim and reads its credentials from environment variables instead of hardcoding them.

Warning

In practice, this plugin is only usable with Spotify Premium. The Spotify account that owns the developer app must have an active Premium subscription, or the Web API playback endpoints will return 403.

  1. Create a Spotify app at https://developer.spotify.com/dashboard.
  2. Add yourself in the app's User Management.
  3. Add a redirect URI such as http://127.0.0.1:8888.
  4. Copy .env.example to .env.
  5. Fill in these variables:
SPOTIFY_CLIENT_ID=your-client-idSPOTIFY_CALLBACK_URL=http://127.0.0.1SPOTIFY_CALLBACK_PORT=8888

This config loads .env automatically during startup. Then run :Spotify or use <leader>ms to start the OAuth flow and open the playback window.

Commands

npm run format:lua
npm run format:lua:check
nvim --headless +qa

Keymaps

Navigation
KeyModeAction
<Left> / <Down> / <Up> / <Right>normal, visualUse h, gj, gk, l style movement.
<Home> / <End>normal, visualJump to first non-blank char or end of line.
<C-Left> / <C-Right>normal, visual, insertMove by word.
<C-S-Left> / <C-S-Right>normal, visual, insertSelect or extend by word.
<C-S-Up> / <C-S-Down>normal, visual, insertSelect or extend by display line.
Editing
KeyModeAction
<C-BS> / <C-h>insertDelete the previous code chunk, not just a plain word.
<C-w>insertUses the same code-aware backward delete behavior.
<C-BS> / <C-h>normal, visualDelete the previous selection chunk backward.
<BS>visualDelete selection into the black hole register.
Clipboard And Save
KeyModeAction
<C-x>normal, visualCut to system clipboard.
<C-c>normal, visualCopy to system clipboard.
<C-v>normal, visualPaste from system clipboard.
<C-z> / <C-y>normal, visualUndo / redo.
<C-s>normal, visual, insertSave current buffer.
<C-a>normal, insertSelect the entire buffer.
Window Management
KeyModeAction
<C-q>normalClose current buffer.
<leader>v / <leader>hnormalVertical split / horizontal split.
<leader>q / <leader>onormalClose current window / keep only current window.
<leader><Left> / <leader><Down> / <leader><Up> / <leader><Right>normalMove across windows.
UI And Search
KeyModeAction
<leader>enormalOpen oil.nvim in the current directory.
<leader><leader>normalFind files with Telescope.
<leader>msnormalOpen smm.nvim / Spotify playback.
<C-p>normalOpen recent buffers with Telescope.
<leader>gnormalRun live grep with Telescope.
<Esc>normalClear search highlight and keep escape behavior.
<Esc>insert, visual, select, operator-pendingKeep plain escape behavior explicit.
Terminal
KeyModeAction
<Esc>terminalLeave terminal mode.
<C-\> / Ctrl+\`` / //<C-@>`normal, terminalToggle the last floating terminal.
<leader>tnnormalCreate a new floating terminal.
<leader>tsnormalPick an existing terminal from the Telescope selector.
<leader>tknormalClose the last terminal.

Performance

  • Startup benchmark (nvim --startuptime, 5 runs): 17.20 ms min, 21.47 ms avg, 30.78 ms max.
  • Plugin count: 29
  • Loaded during measured session: 21
  • Benchmark logs can be generated locally with:
nvim --startuptime startup.log +qa

Plugins

PluginDescription
blink.cmpCompletion engine.
colorful-winsep.nvimAnimated colored window separators.
flash.nvimFast in-buffer motion and jump UI.
github-nvim-themeGitHub-themed colorscheme.
gitsigns.nvimGit hunks in the sign column.
indent-blankline.nvimIndent guides.
lazydev.nvimBetter Lua dev experience for Neovim config.
lualine.nvimStatusline.
luau-lsp.nvimLuau and Roblox LSP integration.
mason-lspconfig.nvimBridges Mason with lspconfig.
mason.nvimExternal tool and LSP installer.
neoscroll.nvimSmooth scrolling.
noice.nvimImproved command line, messages, and popup UI.
nvim-autopairsAuto-closes brackets and quotes.
nvim-lspconfigLSP server configuration.
nvim-notifyBetter notification UI.
oil.nvimFile explorer as an editable buffer.
render-markdown.nvimBetter Markdown rendering.
smm.nvimSpotify playback manager and controller.
smear-cursor.nvimCursor trail animation.
tabby.nvimCustom tabline.
telescope.nvimFuzzy finder for files, buffers, and grep.
tiny-inline-diagnostic.nvimCompact inline diagnostics.
toggleterm.nvimFloating terminal management.
transparent.nvimTransparent editor background.

License

MIT. See LICENSE.

About

Personal Neovim configuration with modular structure, fast startup, and automated validation.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages