The purr-fect Neovim configuration for a cozy coding session. May or may not increase your productivity by a feline factor.
A carefully curated Neovim configuration that delivers a modern and delightful developer experience. Part of the Project Meow, Meowvim
includes elegant defaults, essential plugins, and playful polish.
- π Zero Configuration β Sensible defaults out of the box
- π¨ Modern UI β Clean interface powered by Tokyo Night theme
- π§ AI Integration β GitHub Copilot support for smart code suggestions
- β‘ Fast & Lazy β Optimized with Lazy.nvim for performance
- π§ Fully Customizable β Easy to extend with your own tweaks
- π Language Ready β Preconfigured LSPs for major languages
- π¦ 25+ Curated Plugins β For everything from Git to testing
- π§βπ» GitHub Copilot Subscription β Optional AI enhancements
If you're starting fresh or want to replace your current Neovim config:
# Backup your existing config (if any)
mv ~/.config/nvim ~/.config/nvim.backup
# Clone Meowvim
git clone https://github.com/retran/meowvim.git ~/.config/nvim
# Start Neovim - plugins will install automatically
nvim
If you're using meow
dotfiles management system:
# Clone the meow system
git clone https://github.com/retran/meow.git ~/.meow
# Initialize and update submodules (meowvim is connected as submodule)
cd ~/.meow
git submodule init
git submodule update
# Follow the meow installation instructions
./install.sh
After installation, follow these steps to get started:
nvim
On first launch, Meowvim
will:
- Install the Lazy.nvim plugin manager
- Download and install all plugins
- Configure Language Server Protocol (LSP) servers automatically
:Copilot auth
- Neovim β₯ 0.9.0
- Git
- Terminal with true color support
- Node.js β₯ 18
- Python β₯ 3.8
- Go β₯ 1.19
- Ripgrep
- fd
- fzf
- JetBrains Mono Nerd Font
Meowvim
is highly customizable. Here's how to make it your own:
~/.config/nvim/
βββ init.lua # Main configuration entry point
βββ lua/
β βββ config/
β β βββ options.lua # Neovim options
β β βββ keymaps.lua # Key mappings
β βββ plugins/ # Plugin configurations
β βββ utils/ # Utility functions
βββ assets/ # Icons and resources
Edit lua/config/options.lua
to change Neovim settings:
-- Example: Change tab width
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4
-- Example: Enable line wrapping
vim.opt.wrap = true
Create a new file in lua/plugins/
directory:
-- lua/plugins/my-plugin.lua
return {
"author/plugin-name",
config = function()
-- Plugin configuration
end,
}
Edit lua/config/keymaps.lua
to add your own key mappings:
-- Add your custom keymaps
{ "<leader>mp", ":MyPlugin<CR>", desc = "My Plugin" },
Switch themes by editing lua/plugins/tokyonight.lua
:
-- Change variant
vim.cmd.colorscheme("tokyonight-storm") -- or "tokyonight-day"
# Clear plugin cache and reinstall
rm -rf ~/.local/share/nvim/lazy
nvim --headless "+Lazy sync" +qa
-
Check if the language server is installed:
:LspInfo
-
Language servers are managed by the
meow
. If you installedMeowvim
as part ofmeow
, they should be automatically available. -
For standalone installation, you may need to install servers manually:
# TypeScript/JavaScript npm install -g typescript typescript-language-server # Python pip install python-lsp-server # Go go install golang.org/x/tools/gopls@latest # Rust rustup component add rust-analyzer
-
Authenticate with GitHub:
:Copilot auth
-
Check status:
:Copilot status
-
Check startup time:
:StartupTime
-
Disable unused plugins in
lua/plugins/
Install JetBrains Mono Nerd Font.
- Use
:help
for Neovim documentation - Check
:Lazy
for plugin management - Use
<Space>?
for Which-key help - Check the issues page
Contributions are welcome to help improve Meowvim
! Here's how you can help:
- π Report bugs
- π‘ Suggest new features
- π Improve documentation
- π§ Submit code improvements
- π¨ Enhance themes and UI
This project is licensed under the MIT License. See the LICENSE file for details.
Meowvim
builds on the excellent work of the Neovim community.
- Neovim - The extensible text editor
- Lazy.nvim - Modern plugin manager
- Tokyo Night - Beautiful colorscheme
- auto-save.nvim - Automatic file saving
- bufferline.nvim - Buffer line with tabs
- cmp-buffer - Buffer completion source
- cmp-nvim-lsp - LSP completion source
- cmp-path - Path completion source
- cmp_luasnip - LuaSnip completion source
- Comment.nvim - Smart commenting
- conform.nvim - Code formatting
- copilot.lua - GitHub Copilot integration
- copilot-cmp - Copilot completion source
- copilot-lualine - Copilot status in lualine
- FixCursorHold.nvim - Fix CursorHold performance
- friendly-snippets - Snippet collection
- gitsigns.nvim - Git integration
- indent-blankline.nvim - Indentation guides
- leap.nvim - Quick navigation
- lspkind.nvim - LSP kind icons
- lualine.nvim - Status line
- LuaSnip - Snippet engine
- mini.icons - Icon provider
- neodev.nvim - Lua development setup
- neotest - Test runner
- neotest-go - Go test adapter
- noice.nvim - Improved UI
- nui.nvim - UI components library
- nvim-autopairs - Auto-pairing
- nvim-cmp - Completion engine
- nvim-dap - Debug adapter protocol
- nvim-dap-ui - Debug UI
- nvim-lint - Linting
- nvim-lspconfig - LSP configuration
- nvim-nio - Async I/O library
- nvim-notify - Notification system
- nvim-treesitter - Syntax highlighting
- nvim-treesitter-context - Context display
- nvim-treesitter-textobjects - Text objects
- nvim-web-devicons - File icons
- plenary.nvim - Lua utilities
- refactoring.nvim - Refactoring tools
- SchemaStore.nvim - JSON schema store
- snacks.nvim - Collection of utilities
- vim-fugitive - Git commands
- vim-repeat - Repeat plugin commands
- vim-startuptime - Startup profiling
- which-key.nvim - Keybinding help
Meowvim
is developed by Andrew Vasilyev with help from GitHub Copilot and feline assistants Sonya Blade, Mila, and Marcus Fenix.
Happy coding with project meow
! π±
Made with β€οΈ by Andrew Vasilyev and feline assistants