Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

My Neovim Configuration

A modern, minimal Neovim configuration focused on Python and Shell development.

✨ Features

  • 🎨 Theme: Gruvbox colorscheme
  • 📁 File Explorer: Neo-tree
  • 💻 Terminal: ToggleTerm with floating window support
  • 🔧 LSP: Python (Pyright) and Bash support
  • ✍️ Auto-completion: nvim-cmp with multiple sources
  • 🎯 Formatting: Ruff for Python, shfmt for Shell
  • 🌳 Syntax Highlighting: Treesitter
  • ⌨️ Key Hints: which-key for discovering shortcuts
  • 📝 Markdown Preview: Glow

📦 Plugin List

Core

UI

LSP & Completion

Editing

Tools

⚡ Quick Start

Installation

  1. Backup existing config (if any):
mv ~/.config/nvim ~/.config/nvim.backup
  1. Clone this repository:
git clone https://github.com/YOUR_USERNAME/nvim-config.git ~/.config/nvim
  1. Open Neovim:
nvim

Plugins will be automatically installed on first launch.

  1. Install formatters (after plugins are installed):
:MasonInstall ruff shfmt

Requirements

  • Neovim >= 0.9.0
  • Git
  • A Nerd Font for icons
  • For Markdown preview: glow

⌨️ Key Bindings

Leader Key

<Space> is the leader key.

Essential Shortcuts

Key Action
<Space>e Toggle file explorer
<Ctrl-\> Toggle terminal
<Ctrl-s> Save file
<Space>w Save
<Space>q Quit

File Navigation

Key Action
<Ctrl-h/j/k/l> Navigate between windows
<Shift-h/l> Previous/Next buffer
<Space>x Close buffer

LSP (Python/Shell files)

Key Action
gd Go to definition
gr Show references
K Hover documentation
<Space>rn Rename symbol
<Space>ca Code action
<Space>fm Format file

Terminal

Key Action
<Ctrl-\> Toggle terminal
<Space>tf Float terminal
<Space>th Horizontal terminal
<Space>tv Vertical terminal
<Esc> (in terminal) Exit terminal mode

Auto-completion (Insert mode)

Key Action
<Ctrl-Space> Trigger completion
<Ctrl-j/k> Next/Previous suggestion
<Tab> Select/Expand snippet
<Enter> Confirm selection

📁 File Structure

~/.config/nvim/
├── init.lua                 # Entry point
├── lazy-lock.json          # Plugin versions (auto-generated)
├── lua/
│   ├── config/
│   │   ├── options.lua     # Vim options
│   │   ├── keymaps.lua     # Key mappings
│   │   └── lazy.lua        # Lazy.nvim setup
│   ├── plugins/
│   │   ├── cmp.lua         # Auto-completion
│   │   ├── conform.lua     # Code formatting
│   │   ├── glow.lua        # Markdown preview
│   │   ├── lsp.lua         # LSP configuration
│   │   ├── mason.lua       # LSP installer
│   │   ├── neo-tree.lua    # File explorer
│   │   ├── toggleterm.lua  # Terminal
│   │   └── which-key.lua   # Key hints
│   └── plugins.lua         # Additional plugins (theme, treesitter)
└── README.md

🛠️ Customization

Change Theme

Edit lua/plugins.lua and replace gruvbox with your preferred colorscheme.

Add More LSP Servers

Edit lua/plugins/lsp.lua and add servers to ensure_installed list.

Modify Key Bindings

Edit lua/config/keymaps.lua and lua/plugins/which-key.lua.

📝 Notes

  • This config uses Ruff for Python formatting (fast and modern)
  • LSP servers are automatically installed via Mason
  • Format on save is enabled by default
  • Terminal uses floating window by default

🤝 Credits

Thanks to all the amazing plugin authors and the Neovim community!

📄 License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages