A launch point for your personal nvim configuration
Go to file
Kontrol ed8b347cff fix: remove markdownlint from linter config (binary not installed) 2026-07-07 09:09:01 -03:00
.github Add checkhealth to bug report step 2026-06-11 17:52:24 +03:00
doc feat: move to lazy.nvim package manager and add first plugins (#178) 2023-02-17 16:31:57 -05:00
lua/kickstart fix: remove markdownlint from linter config (binary not installed) 2026-07-07 09:09:01 -03:00
.gitignore Migrate to vim.pack 2026-05-05 01:18:15 +03:00
.stylua.toml fix: trimming down config and updating stylua 2026-01-27 12:00:59 -05:00
LICENSE.md license 2022-06-25 21:51:44 -04:00
README.md feat: enable linting for shell/Go/markdown; disable neo-tree netrw hijack; rewrite README 2026-07-07 08:57:39 -03:00
init.lua refactor: extract LSP, conform, blink, treesitter into plugin files; rewrite Section 10 with clean requires 2026-07-07 08:56:52 -03:00

README.md

Neovim Development Environment

A single-file Neovim configuration forked from Kickstart.nvim, tuned for infrastructure and backend development.

Philosophy

  • Built for DevOps: Deep integrations for Go, Terraform/HCL, Bicep, PowerShell, Ansible, Jinja, and Bash.
  • vim.pack native: Uses Neovim 0.12+'s built-in vim.pack plugin manager — no external plugin manager needed.
  • Terminal-native: Keyboard-driven. No GUI fluff.
  • Modular: Each plugin lives in its own file under lua/kickstart/plugins/. Enable or disable by commenting a single require in Section 10 of init.lua.

Prerequisites

Arch Linux:

sudo pacman -S --needed neovim gcc make git ripgrep fd tree-sitter-cli unzip xclip

Optional but recommended:

sudo pacman -S --needed shellcheck golangci-lint  # for linting

Installation

# Backup existing config
mv ~/.config/nvim ~/.config/nvim.bak
rm -rf ~/.local/share/nvim

# Clone and bootstrap
git clone https://github.com/<your-username>/nvim.git ~/.config/nvim
nvim  # Plugins auto-install on first run

Core Stack

Category Tooling
LSP gopls, terraformls, ansiblels, jinja_lsp, powershell_es, pyright, bicep-lsp, lua_ls
Autocomplete blink.cmp + LuaSnip
Fuzzy Finder Telescope.nvim (ripgrep + fd + fzf-native)
Parsing Treesitter (auto-installs parsers on demand)
Formatting conform.nvim — autoformat on save for go, hcl, ps1, lua; external hclfmt for HCL
Linting nvim-lint — shellcheck (bash/sh/zsh), golangci-lint (Go), markdownlint (markdown)
Git gitsigns.nvim — hunk staging, blame, diff, text objects
File Tree neo-tree.nvim — toggle with <leader>ff
Debug nvim-dap + dap-ui + dap-go (commented out by default)

Custom Keymaps

Key Action
<C-s> Save file (insert + normal mode)
<PageUp> / <PageDown> Scroll up/down
<C-h/j/k/l> Navigate splits
<leader>ff Toggle neo-tree file explorer
<leader>fb Toggle neo-tree buffer explorer
<leader>sf Telescope find files
<leader>sg Telescope live grep
<leader>f Format buffer
<leader>hs Stage git hunk
<leader>hr Reset git hunk
<leader>tb Toggle git blame

Management

  • Check plugin status: :lua vim.pack.update(nil, { offline = true })
  • Update plugins: :lua vim.pack.update() (:write to apply, :quit to cancel)
  • Health check: :checkhealth kickstart
  • Add a plugin: Create lua/kickstart/plugins/<name>.lua, add require 'kickstart.plugins.<name>' in init.lua Section 10
  • Disable a plugin: Comment its require in init.lua Section 10