Skip to content

zkm/nvim-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nvim-config

My personal Neovim configuration for Linux — full-featured IDE setup using lazy.nvim.

Neovim screenshot

Defaults and Goals

  • Keep the setup small and understandable while still covering daily IDE needs.
  • Use sensible editing defaults: line numbers, relative numbers, true color, 2-space indentation, and mouse support.
  • Favor fast navigation with Neo-tree for project browsing and Telescope for fuzzy finding.
  • Keep language support practical with LSP, Treesitter, Mason, and nvim-cmp.
  • Preserve a smooth completion workflow by keeping Tab for nvim-cmp and moving GitHub Copilot accept to <C-l>.
  • Stick to a clean, consistent UI with Tokyo Night and lualine instead of heavy visual customization.

Requirements

  • Neovim >= 0.11
  • Git
  • A Nerd Font for icons
  • ripgrep for Telescope live grep

Install

SSH:

git clone git@github.com:zkm/nvim-config.git ~/.config/nvim

HTTPS:

git clone https://github.com/zkm/nvim-config.git ~/.config/nvim

Quick Start

nvim

On first launch, lazy.nvim will bootstrap itself and install the configured plugins.

Open a file to get syntax highlighting, completion, and LSP features for supported languages.

If you open Neovim with a directory path, Neo-tree opens automatically:

nvim ~/.config/nvim

Structure

~/.config/nvim/
├── init.lua
├── lazy-lock.json
└── lua/
    └── plugins/
        ├── init.lua
        ├── cmp.lua
        ├── copilot.lua
        ├── lsp.lua
        ├── lualine.lua
        ├── neotree.lua
        ├── telescope.lua
        ├── theme.lua
        └── treesitter.lua

Keymaps

  • Space — leader key
  • <leader>e — toggle Neo-tree
  • <C-Space> — trigger completion menu
  • <CR> — confirm selected completion item
  • <Tab> / <S-Tab> — navigate completion items
  • <C-l> — accept GitHub Copilot suggestion

Troubleshooting

  • Icons look wrong or are missing: install a Nerd Font and configure your terminal to use it.
  • :Telescope live_grep fails: make sure ripgrep is installed and available in PATH.
  • Plugins do not install on first launch: confirm git is installed and that Neovim has network access, then restart Neovim.
  • LSP features are missing for a language: run :Mason and verify the server is installed for one of the configured languages.
  • Treesitter highlighting is missing or outdated: run :TSUpdate inside Neovim.
  • Opening a folder does not show Neo-tree: start Neovim with a directory path such as nvim . or use <leader>e after startup.

Plugins

Core

LSP & Completion

AI

Navigation

Syntax

UI

LSP Language Servers (via Mason)

  • lua_ls — Lua
  • gopls — Go
  • elixirls — Elixir
  • rust_analyzer — Rust
  • vtsls — JavaScript, TypeScript, React, and Vue TypeScript integration
  • eslint — JavaScript and TypeScript linting
  • vue_ls — Vue
  • intelephense — PHP

Formatters and Linters (via mason-tool-installer)

  • stylua — Lua formatter
  • prettierd — Prettier daemon for fast JS/TS/JSON/CSS/HTML/Markdown formatting
  • selene — Lua linter
  • eslint_d — ESLint daemon for fast JavaScript and TypeScript linting

These tools are installed from lua/plugins/mason-tools.lua on startup.

About

My personal Neovim configuration for Linux — full-featured IDE setup using lazy.nvim.

Resources

License

Stars

Watchers

Forks

Contributors

Languages