Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

my-neovim

Personal Neovim config managed with GNU Stow and lazy.nvim. Leader key is <Space>.

Installation

./install.sh

This symlinks the config via Stow and points ~/.config/nvim at ~/.config/my-neovim (backing up any existing config to ~/.config/nvim.bak).

Structure

.config/my-neovim/
├── init.lua                  # Entry point — loads config + lazy.nvim
└── lua/
    ├── config/
    │   ├── options.lua       # Vim options (tabs, line numbers, clipboard, etc.)
    │   ├── keymaps.lua       # Global keymaps (not plugin-specific)
    │   ├── colorscheme.lua   # Colorscheme loader
    │   └── settings.lua      # Shared settings (e.g. alpha dashboard header)
    └── plugins/              # One file per plugin, loaded by lazy.nvim

Plugins

Plugin Purpose
lazy.nvim Plugin manager
alpha-nvim Start screen / dashboard
barbar.nvim Tab / buffer bar
lualine.nvim Status line
neo-tree.nvim File explorer sidebar
telescope.nvim Fuzzy finder
nvim-treesitter Syntax highlighting & parsing
mason.nvim LSP / tool installer
nvim-lspconfig LSP client configuration
blink.cmp Completion engine
conform.nvim Code formatter
nvim-autopairs Auto-close brackets & quotes
nvim-highlight-colors Inline color previews
which-key.nvim Keymap hints popup
todo-comments.nvim Highlight and search TODO comments
trouble.nvim Diagnostics / quickfix panel

Colorschemes

Plugin Variant
tokyonight.nvim tokyonight-storm (default)
kanagawa.nvim
nightfox.nvim
nord.nvim
onedarkpro.nvim
rose-pine
neovim-ayu

LSP servers (auto-installed via Mason)

  • gopls — Go
  • lua_ls — Lua
  • cssls — CSS
  • emmet_language_server — HTML / CSS / JSX
  • templ — Templ
  • just-lsp — Justfile
  • nixd — Nix (system-managed, not Mason — install via nix)

Formatters / tools (auto-installed via Mason)

  • prettier — CSS, HTML, JavaScript, TypeScript
  • shfmt — Shell formatting
  • stylua — Lua formatting (system-managed, not Mason)
  • gofumpt, goimports — Go formatting (system-managed, not Mason)
  • nixfmt — Nix formatting (system-managed, not Mason — install via nix)

Colorscheme

Theme selection is persistent — the active colorscheme is saved to ~/.local/share/nvim/saved_colorscheme.txt and restored on every startup. The default fallback is tokyonight-storm.

To switch themes interactively, use the :ThemeSelect command (or the t button on the dashboard). This opens a Telescope fuzzy picker over all installed colorschemes; confirming a selection applies and saves it immediately.

Dashboard (alpha-nvim)

The start screen is shown when Neovim is opened with no file argument.

Key Action
c New file
f Find file (Telescope)
g Find text (live grep)
n Open init.lua config
r Recent files
t Change theme (ThemeSelect picker)
q Quit

Keymaps

General

Key Mode Action
<leader>? n Show all keymaps (which-key)
<leader>qq n/v Quit all
jj i Escape to normal mode
<leader>fm n Format current buffer (conform)
<leader>tn n Cycle line number mode (hybrid → absolute → off)
<leader>X n chmod +x current file
<leader>ga n git add current file

Clipboard & registers

Key Mode Action
y v Yank and keep cursor in place
p v Paste without overwriting yank register
<leader>y n/v Yank to system clipboard
<leader>Y n Yank line to system clipboard
<leader>p n/v Paste from system clipboard
<leader>P n/v Paste before from system clipboard
<leader>d n/v Delete to black-hole register (no yank)

Buffers (barbar)

Key Mode Action
<Tab> n/v Next buffer
<S-Tab> n/v Previous buffer
<leader>q n/v Close current buffer
<leader>qb n/v Close all buffers but current
<leader>qr n/v Close all buffers to the right
<leader>ql n/v Close all buffers to the left

File explorer (neo-tree)

Key Mode Action
<leader>ee n Toggle neo-tree
<leader>ef n Focus neo-tree
<leader>er n Reveal current file in neo-tree
<leader>eg n Git status (floating)

Telescope (fuzzy finder)

Key Mode Action
<leader>ff n/v Find files (including hidden)
<leader>fa n/v Find files
<leader>fn n/v Find neovim config files
<leader>fw n/v Live grep
<leader>fk n/v Browse keymaps
<leader>ft n/v Find TODO comments
<leader>th n/v Select colorscheme (Telescope picker)

Telescope picker keymaps

Key Mode Action
<C-j> / <C-k> insert Move selection down / up
<C-d> / <C-u> insert Scroll preview down / up
j / k normal Move selection down / up
gg / G normal Jump to top / bottom
q normal Close picker

Completion (blink.cmp)

Key Action
<Tab> / <S-Tab> Select next / previous item
<CR> Accept selection
<C-Space> Open menu or docs
<C-e> Hide menu

LSP

Key Mode Action
K n Hover documentation
<C-k> n Signature help (function args)
<leader>rn n Rename symbol
gd n Go to definition

TODO Comments

Key Mode Action
]t n Jump to next TODO comment
[t n Jump to previous TODO comment

Diagnostics (trouble.nvim)

Key Mode Action
<leader>xx n Toggle workspace diagnostics
<leader>xX n Toggle buffer diagnostics
<leader>xt n Toggle TODO list
<leader>xL n Toggle location list
<leader>xQ n Toggle quickfix list
<leader>cs n Toggle symbols panel
<leader>cl n Toggle LSP definitions / references

Scripts

Script Purpose
./install.sh Stow config and symlink as ~/.config/nvim
./clean.sh Remove Neovim state (plugins, cache, etc.)

About

My custom NeoVim configs.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages