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.
- Complete LazyVim setup in ~20 seconds
- Automatic backup of existing configuration
- Cross-platform: macOS, Linux, Windows (PowerShell & WSL)
- No manual configuration needed
- 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
:Tutorand comprehensive help system
- 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
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
- 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
- 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
- Neovim 0.9+ (recommended 0.10+)
- Git
- A Nerd Font (optional but recommended)
# 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# 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# Same as macOS/Linux instructions above
curl -O https://raw.githubusercontent.com/yogibairagi/nvim-sensei/main/install.sh
chmod +x install.sh
./install.sh
nvimThat's it! Your Neovim is now fully configured with learning tools and LeetCode integration.
Config Location:
- macOS/Linux:
~/.config/nvim/ - Windows:
%LOCALAPPDATA%\nvim\(typicallyC:\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
:Tutor " Start Vim's built-in tutorial (30 minutes)
:VimBeGood " Practice with the game
<leader>up " Toggle motion hints (precognition)- Master
hjklnavigation - Learn
w,b,efor word movement - Practice
0,$,^for line navigation - Use
f,tfor character jumping
- Combine operators:
d,c,y - With text objects:
iw,aw,i",a" - Practice:
ciw,dap,yi"
- Visual mode:
v,V,<C-v> - Macros:
q{register},@{register} - Search and replace:
/,?,:%s/old/new/g
<leader>lq " Open LeetCode
<leader>ll " Browse problems
<leader>lr " Run test cases
<leader>ls " Submit solutionInteractive game for practicing Vim motions:
:VimBeGood " Start the game
<leader>vg " Quick launchSee available motions highlighted in real-time:
<leader>up " Toggle motion hintsForces efficient motion usage:
<leader>uh " Toggle hardtime mode
<leader>uH " View reportQuick reference for all keybindings:
<leader>? " Open cheatsheet| 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 |
| Key | Action |
|---|---|
<leader>lq |
Open LeetCode |
<leader>ll |
List problems |
<leader>lr |
Run code |
<leader>ls |
Submit solution |
| Key | Action |
|---|---|
<leader>ff |
Find files |
<leader>sg |
Search with grep |
<leader>e |
File explorer |
<leader>gg |
Open lazygit |
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
},
},
}- lazy.nvim: Fast plugin manager
- LazyVim: Pre-configured Neovim setup
- which-key.nvim: Keybinding hints
- telescope.nvim: Fuzzy finder
- vim-be-good: Motion practice game
- precognition.nvim: Motion hints
- hardtime.nvim: Motion training
- cheatsheet.nvim: Quick reference
- 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
- leetcode.nvim: LeetCode integration
- Pre-configured for multiple languages
- Integrated test runner
- Easy submission workflow
macOS:
brew install neovimLinux (Ubuntu/Debian):
sudo add-apt-repository ppa:neovim-ppa/unstable
sudo apt update && sudo apt install neovimWindows:
# Using Scoop (recommended)
scoop install neovim
# Using Chocolatey
choco install neovim
# Using Winget
winget install Neovim.Neovim:Lazy sync " Re-sync all plugins
:Lazy clean " Remove unused plugins
:Lazy update " Update all plugins:LeetcodeSignIn " Sign in to LeetCode
:checkhealth leetcode " Check plugin healthContributions are welcome! Here's how:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Test thoroughly: Run the script in a clean environment
- Commit:
git commit -m "Add amazing feature" - Push:
git push origin feature/amazing-feature - Open a Pull Request
- Additional learning plugins
- More language support
- Alternative themes
- Documentation improvements
- Bug fixes
- Performance optimizations
| Feature | nvim-sensei | LazyVim Starter | Manual Setup |
|---|---|---|---|
| One-command install | โ | โ | โ |
| Learning tools | โ | โ | โ |
| LeetCode integration | โ | โ | โ |
| Language support (20+) | โ | ||
| Documentation | โ (600+ lines) | โ | |
| Setup time | ~20 seconds | ~5 minutes | Hours/Days |
| Beginner friendly | โ | โ |
MIT License - see LICENSE for details
- LazyVim - Folke Lemaitre's excellent Neovim distribution
- vim-be-good - ThePrimeagen's motion practice game
- leetcode.nvim - kawre's LeetCode integration
- precognition.nvim - tris203's motion hints
- hardtime.nvim - m4xshen's motion training
If this project helped you, please consider giving it a star! It helps others discover the project.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Made with โค๏ธ for the Neovim community
Master Vim motions, ace technical interviews, and become a Neovim sensei ๐ฅ