Skip to content

Yogendra96/nvim-sensei

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

nvim-sensei ๐Ÿฅ‹

One-command Neovim setup with integrated learning tools, LeetCode practice, and 20+ language support

nvim-sensei is a comprehensive, automated LazyVim installation script that transforms your Neovim into a powerful development and learning environment in seconds. Perfect for developers who want to master Vim motions while preparing for technical interviews.

โœจ Features

๐Ÿš€ One-Command Installation

  • Complete LazyVim setup in ~20 seconds
  • Automatic backup of existing configuration
  • Cross-platform: macOS, Linux, Windows (PowerShell & WSL)
  • No manual configuration needed

๐Ÿ“š Integrated Learning Tools

  • vim-be-good: Interactive game to practice Vim motions (by ThePrimeagen)
  • precognition.nvim: Real-time motion hints in your viewport
  • hardtime.nvim: Enforces efficient Vim motion usage
  • cheatsheet.nvim: Quick reference for all keybindings
  • Built-in tutorials: Access to :Tutor and comprehensive help system

๐Ÿ’ป LeetCode Integration

  • leetcode.nvim: Solve coding problems directly in Neovim
  • Pre-configured for Python, C++, Java, JavaScript
  • Integrated test runner and submission
  • Custom keybindings: <leader>lq, <leader>ll, <leader>lr, <leader>ls

๐Ÿ› ๏ธ 20+ Language Support

Pre-configured with LazyVim extras for:

  • Web: TypeScript, JavaScript, JSON, HTML, CSS, Tailwind
  • Systems: Go, Rust, C/C++
  • Backend: Python, Java, Ruby, Elixir
  • DevOps: Docker, Terraform, YAML
  • Data: SQL, Markdown
  • Functional: Clojure

๐Ÿ“– Comprehensive Documentation

  • LEARNING.md: 600+ line beginner's guide
  • INSTALL_INFO.md: Post-installation reference
  • Progressive learning path (Day 1 โ†’ Week 4)
  • Quick wins and pro tips

๐ŸŽฏ Who Is This For?

  • Neovim beginners who want a professional setup without configuration hell
  • Interview prep enthusiasts who want LeetCode integration
  • Vim learners who want to master motions through practice
  • Developers setting up Neovim on multiple machines
  • Students learning programming with a modern IDE alternative

โšก Quick Start

Prerequisites

  • Neovim 0.9+ (recommended 0.10+)
  • Git
  • A Nerd Font (optional but recommended)

Installation

๐ŸŽ macOS / ๐Ÿง Linux

# 1. Download the script
curl -O https://raw.githubusercontent.com/yogibairagi/nvim-sensei/main/install.sh

# 2. Make it executable
chmod +x install.sh

# 3. Run it
./install.sh

# 4. Start Neovim
nvim

๐ŸชŸ Windows (PowerShell)

# 1. Download the script
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/yogibairagi/nvim-sensei/main/install.ps1" -OutFile "install.ps1"

# 2. Run it
.\install.ps1

# 3. Start Neovim
nvim

๐ŸชŸ Windows (WSL/Git Bash)

# Same as macOS/Linux instructions above
curl -O https://raw.githubusercontent.com/yogibairagi/nvim-sensei/main/install.sh
chmod +x install.sh
./install.sh
nvim

That's it! Your Neovim is now fully configured with learning tools and LeetCode integration.

What Gets Installed

Config Location:

  • macOS/Linux: ~/.config/nvim/
  • Windows: %LOCALAPPDATA%\nvim\ (typically C:\Users\YourName\AppData\Local\nvim\)

Directory Structure:

nvim/
โ”œโ”€โ”€ init.lua                              # LazyVim entry point
โ”œโ”€โ”€ lua/
โ”‚   โ”œโ”€โ”€ config/                          # LazyVim core config
โ”‚   โ”‚   โ”œโ”€โ”€ autocmds.lua
โ”‚   โ”‚   โ”œโ”€โ”€ keymaps.lua
โ”‚   โ”‚   โ”œโ”€โ”€ lazy.lua
โ”‚   โ”‚   โ””โ”€โ”€ options.lua
โ”‚   โ””โ”€โ”€ plugins/                         # Plugin configurations
โ”‚       โ”œโ”€โ”€ extras.lua                   # 20+ language extras
โ”‚       โ”œโ”€โ”€ leetcode.lua                 # LeetCode integration
โ”‚       โ”œโ”€โ”€ learning.lua                 # Vim learning tools
โ”‚       โ””โ”€โ”€ which-key-learning.lua       # Custom keybindings
โ”œโ”€โ”€ LEARNING.md                          # Comprehensive guide
โ””โ”€โ”€ INSTALL_INFO.md                      # Quick reference

๐Ÿ“š Learning Path

Day 1: Basics

:Tutor                    " Start Vim's built-in tutorial (30 minutes)
:VimBeGood                " Practice with the game
<leader>up                " Toggle motion hints (precognition)

Week 1: Essential Motions

  • Master hjkl navigation
  • Learn w, b, e for word movement
  • Practice 0, $, ^ for line navigation
  • Use f, t for character jumping

Week 2: Operators & Text Objects

  • Combine operators: d, c, y
  • With text objects: iw, aw, i", a"
  • Practice: ciw, dap, yi"

Week 3: Advanced Features

  • Visual mode: v, V, <C-v>
  • Macros: q{register}, @{register}
  • Search and replace: /, ?, :%s/old/new/g

Week 4: LeetCode Practice

<leader>lq                " Open LeetCode
<leader>ll                " Browse problems
<leader>lr                " Run test cases
<leader>ls                " Submit solution

๐ŸŽฎ Learning Tools

vim-be-good

Interactive game for practicing Vim motions:

:VimBeGood                " Start the game
<leader>vg                " Quick launch

Precognition (Motion Hints)

See available motions highlighted in real-time:

<leader>up                " Toggle motion hints

Hardtime (Motion Training)

Forces efficient motion usage:

<leader>uh                " Toggle hardtime mode
<leader>uH                " View report

Cheatsheet

Quick reference for all keybindings:

<leader>?                 " Open cheatsheet

โŒจ๏ธ Key Bindings

Learning & Practice

Key Action
<leader>vg Launch vim-be-good game
<leader>vt Open :Tutor
<leader>up Toggle motion hints
<leader>uh Toggle hardtime
<leader>? Open cheatsheet

LeetCode

Key Action
<leader>lq Open LeetCode
<leader>ll List problems
<leader>lr Run code
<leader>ls Submit solution

LazyVim Defaults

Key Action
<leader>ff Find files
<leader>sg Search with grep
<leader>e File explorer
<leader>gg Open lazygit

๐Ÿ”ง Customization

Plugin configurations location:

  • macOS/Linux: ~/.config/nvim/lua/plugins/
  • Windows: %LOCALAPPDATA%\nvim\lua\plugins\

Edit them to customize:

-- learning.lua
return {
  {
    "tris203/precognition.nvim",
    opts = {
      startVisible = true,  -- Start with hints enabled
    },
  },
}

๐Ÿ“ฆ What's Included

Core Plugins

  • lazy.nvim: Fast plugin manager
  • LazyVim: Pre-configured Neovim setup
  • which-key.nvim: Keybinding hints
  • telescope.nvim: Fuzzy finder

Learning Plugins

  • vim-be-good: Motion practice game
  • precognition.nvim: Motion hints
  • hardtime.nvim: Motion training
  • cheatsheet.nvim: Quick reference

Development Tools

  • LSP: Language servers via Mason
  • Treesitter: Syntax highlighting
  • Auto-completion: blink.cmp
  • Git integration: lazygit, gitsigns
  • Debugging: nvim-dap
  • Testing: neotest
  • Formatting: conform.nvim
  • Linting: nvim-lint

Interview Prep

  • leetcode.nvim: LeetCode integration
  • Pre-configured for multiple languages
  • Integrated test runner
  • Easy submission workflow

๐Ÿ†˜ Troubleshooting

Neovim version too old

macOS:

brew install neovim

Linux (Ubuntu/Debian):

sudo add-apt-repository ppa:neovim-ppa/unstable
sudo apt update && sudo apt install neovim

Windows:

# Using Scoop (recommended)
scoop install neovim

# Using Chocolatey
choco install neovim

# Using Winget
winget install Neovim.Neovim

Plugin installation fails

:Lazy sync              " Re-sync all plugins
:Lazy clean             " Remove unused plugins
:Lazy update            " Update all plugins

LeetCode not working

:LeetcodeSignIn         " Sign in to LeetCode
:checkhealth leetcode   " Check plugin health

๐Ÿค Contributing

Contributions are welcome! Here's how:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Test thoroughly: Run the script in a clean environment
  5. Commit: git commit -m "Add amazing feature"
  6. Push: git push origin feature/amazing-feature
  7. Open a Pull Request

Ideas for Contributions

  • Additional learning plugins
  • More language support
  • Alternative themes
  • Documentation improvements
  • Bug fixes
  • Performance optimizations

๐Ÿ“Š Comparison with Other Solutions

Feature nvim-sensei LazyVim Starter Manual Setup
One-command install โœ… โŒ โŒ
Learning tools โœ… โŒ โŒ
LeetCode integration โœ… โŒ โŒ
Language support (20+) โœ… โš ๏ธ (manual) โš ๏ธ (manual)
Documentation โœ… (600+ lines) โš ๏ธ (basic) โŒ
Setup time ~20 seconds ~5 minutes Hours/Days
Beginner friendly โœ… โš ๏ธ โŒ

๐Ÿ“„ License

MIT License - see LICENSE for details

๐Ÿ™ Acknowledgments

โญ Star History

If this project helped you, please consider giving it a star! It helps others discover the project.

๐Ÿ“ž Support


Made with โค๏ธ for the Neovim community

Master Vim motions, ace technical interviews, and become a Neovim sensei ๐Ÿฅ‹

About

One-command Neovim setup with integrated learning tools, LeetCode practice, and 20+ language support

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors