Skip to content

Neovim config with strong opinions and weak documentation.

Notifications You must be signed in to change notification settings

suraniharsh/nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neovim Configuration

A clean, modular Neovim configuration for Neovim 0.11+.

Screenshots

Dashboard

Dashboard

Editor

Editor

Telescope

Telescope

LSP & Completion

LSP

Requirements

  • Neovim >= 0.11
  • Git
  • Nerd Font (for icons)
  • ripgrep (for Telescope live grep)
  • Node.js (for some LSP servers)

For Rust Development

  • Rust toolchain via rustup
  • rust-analyzer: rustup component add rust-analyzer

Installation

# Backup existing config
mv ~/.config/nvim ~/.config/nvim.bak

# Clone this config
git clone <your-repo-url> ~/.config/nvim

# Start Neovim (plugins will auto-install)
nvim

Structure

~/.config/nvim/
├── init.lua              # Entry point
├── ascii-art.txt         # Dashboard header (editable)
├── lua/
│   ├── config/
│   │   ├── lazy.lua      # Plugin manager bootstrap
│   │   ├── options.lua   # Editor settings
│   │   ├── keymaps.lua   # Key mappings
│   │   ├── cmp.lua       # Completion config
│   │   └── lsp/
│   │       ├── init.lua  # LSP entry point
│   │       ├── lua.lua   # Lua LSP config
│   │       └── rust.lua  # Rust LSP config
│   └── plugins/
│       ├── init.lua      # Plugin aggregator
│       ├── theme.lua     # Catppuccin colorscheme
│       ├── telescope.lua # Fuzzy finder
│       ├── lsp.lua       # LSP plugins
│       ├── cmp.lua       # Completion plugins
│       ├── treesitter.lua# Syntax highlighting
│       └── ui.lua        # UI components

Plugins

Plugin Description
lazy.nvim Plugin manager
catppuccin Colorscheme
telescope.nvim Fuzzy finder
nvim-treesitter Syntax highlighting
nvim-lspconfig LSP configuration
mason.nvim LSP installer
nvim-cmp Autocompletion
lualine.nvim Statusline
bufferline.nvim Buffer tabs
alpha-nvim Dashboard

Keybindings

General

Key Action
<Space> Leader key

Telescope

Key Action
<leader>ff Find files
<leader>fg Live grep
<leader>fb Buffers
<leader>fh Help tags

LSP

Key Action
gd Go to definition
K Hover documentation
<leader>rn Rename
<leader>ca Code action
[d Previous diagnostic
]d Next diagnostic

Completion

Key Action
<Tab> Next suggestion
<S-Tab> Previous suggestion
<CR> Confirm selection
<C-Space> Trigger completion

Customization

Change Dashboard Art

Edit ~/.config/nvim/ascii-art.txt with your ASCII art.

Add New Plugins

Create a new file in lua/plugins/ (e.g., lua/plugins/myplugin.lua):

return {
  "author/plugin-name",
  config = function()
    -- your config here
  end,
}

Add New LSP Server

Create a new file in lua/config/lsp/ (e.g., lua/config/lsp/python.lua):

vim.lsp.config("pyright", {
  -- config here
})
vim.lsp.enable("pyright")

Then add require("config.lsp.python") to lua/config/lsp/init.lua.

Commands

Command Description
:Lazy Open plugin manager
:Lazy sync Update plugins
:Mason Open LSP installer
:LspInfo Check LSP status
:TSUpdate Update Treesitter parsers

License

MIT

About

Neovim config with strong opinions and weak documentation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages