|
|
||
|---|---|---|
| .github | ||
| doc | ||
| lua/kickstart | ||
| .gitignore | ||
| .stylua.toml | ||
| LICENSE.md | ||
| README.md | ||
| init.lua | ||
| lazy-lock.json | ||
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.packplugin 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 singlerequirein Section 10 ofinit.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()(:writeto apply,:quitto cancel) - Health check:
:checkhealth kickstart - Add a plugin: Create
lua/kickstart/plugins/<name>.lua, addrequire 'kickstart.plugins.<name>'in init.lua Section 10 - Disable a plugin: Comment its
requirein init.lua Section 10