Skip to content
/ meowvim Public

The purr-fect Neovim configuration for a cozy coding session. May or may not increase your productivity by a feline factor.

License

Notifications You must be signed in to change notification settings

retran/meowvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐱 meowvim

The purr-fect Neovim configuration for a cozy coding session. May or may not increase your productivity by a feline factor.

Neovim License GitHub stars GitHub forks

meowvim logo
meowvim - Purr-fect Neovim

A carefully crafted Neovim configuration that provides a modern development environment. Part of the project meow, meowvim includes curated plugins, intelligent defaults, and a consistent user experience.

🖼️ Screenshots

Dashboard

meowvim Dashboard

Editor

meowvim Editor

🌟 Key Features

  • 🚀 Zero Configuration: Works out of the box with sensible defaults
  • 🎨 Modern Interface: Tokyo Night theme with clean UI components
  • 🖥️ GUI Support: Optimized for both terminal and Neovide GUI experience
  • 📱 Raycast Integration: Quick launcher scripts for macOS productivity
  • 🧠 AI-Powered: GitHub Copilot integration for coding assistance
  • ⚡ Performance: Optimized with lazy loading
  • 🔧 Customizable: Easy to extend and modify
  • 🌐 Language Support: Works with major programming languages
  • 📦 Plugin Collection: 50+ curated plugins for development

📋 Table of Contents

✨ Features

meowvim includes these development features:

🧠 Intelligence & Completion

  • LSP Support: Language Server Protocol integration with automatic setup
  • GitHub Copilot: AI-powered code completion and suggestions
  • Completion Engine: Context-aware autocompletion with nvim-cmp
  • Code Snippets: Snippet collection with LuaSnip
  • Syntax Highlighting: Syntax highlighting with Treesitter

🎨 Interface

  • Tokyo Night Theme: Modern, readable colorscheme
  • Status Line: Informative status bar with Git integration
  • Buffer Management: Buffer navigation and organization
  • Icons: Consistent iconography throughout
  • Indent Guides: Visual indentation helpers

🔧 Development Tools

  • Git Integration: Git workflow with Gitsigns and Fugitive
  • Code Formatting: Automatic formatting with Conform.nvim
  • Linting: Real-time code linting with nvim-lint
  • Debugging: Debugging support with nvim-dap and specialized Go support
  • Testing: Test runner integration with Neotest
  • Note Taking: Neorg for structured note-taking and documentation

🚀 Productivity

  • Fuzzy Finder: File and text search with Snacks
  • Auto-save: Automatic file saving
  • Session Management: Session persistence with auto-session
  • Quick Navigation: Leap motion and Flit for cursor movement
  • Comment Handling: Smart comment toggling
  • Auto-pairs: Automatic bracket and quote pairing
  • Note Taking: Neorg integration for organized note-taking
  • Scratch Buffers: Quick scratch notes and temporary buffers

🎯 Language Support

  • Go: Go development support with testing
  • TypeScript/JavaScript: JS/TS development
  • Python: Python development support
  • Lua: Lua development for Neovim
  • Additional languages: Extensible language support

📋 Prerequisites

Before installing meowvim, ensure you have the following:

Required

  • Neovim ≥ 0.10.0
  • Git (for plugin management)
  • A terminal with true color support

Recommended

  • Node.js ≥ 18.0 (for some LSP servers and Copilot)
  • Python ≥ 3.8 (for Python LSP and some plugins)
  • Go ≥ 1.19 (for Go development)
  • Ripgrep (for faster searching)
  • fd (for faster file finding)
  • fzf (for fuzzy finding)
  • JetBrains Mono Nerd Font (for proper icon display)

Optional

  • GitHub Copilot subscription (for AI features)
  • Neovide (for GUI experience with enhanced visual features)

🚀 Installation

Option 1: Fresh Installation

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

Option 2: As Part of meow System

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
./bin/meowctl install personal

⚡ Quick Start

After installation, follow these steps to get started:

1. First Launch

nvim

On first launch, meowvim will:

  • Install the Lazy.nvim plugin manager
  • Download and install all plugins
  • Configure Language Server Protocol (LSP) servers automatically

2. Basic Navigation

  • Leader key: Space (main entry point for features)
  • Open project: Space, f, p (or p from dashboard)
  • Find files: Space, f, f (or f from dashboard)
  • Leap motion: Space, Space for quick cursor jumps
  • Open scratch buffer: Space, .
  • Dashboard navigation: Use the shortcuts shown on the dashboard

3. Set Up GitHub Copilot (Optional)

:Copilot auth

⚙️ Configuration

meowvim is highly customizable. Here's how to make it your own:

File Structure

~/.config/nvim/
├── init.lua              # Main configuration entry point
├── lua/
│   ├── config/
│   │   ├── options.lua   # Neovim options
│   │   ├── keymaps.lua   # Key mappings
│   │   └── neovide.lua   # Neovide-specific settings
│   ├── plugins/          # Plugin configurations
│   ├── utils/            # Utility functions and patches
├── scripts/              # Helper scripts (icon display)
├── bin/                  # Raycast integration scripts
└── assets/               # Icons and resources

Customizing Options

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

Adding Plugins

Create a new file in lua/plugins/ directory:

-- lua/plugins/my-plugin.lua
return {
  "author/plugin-name",
  config = function()
    -- Plugin configuration
  end,
}

Customizing Keymaps

Edit lua/config/keymaps.lua to add your own key mappings:

-- Add your custom keymaps
{ "<leader>mp", ":MyPlugin<CR>", desc = "My Plugin" },

Theme Customization

Switch themes by editing lua/plugins/tokyonight.lua:

-- Change variant
vim.cmd.colorscheme("tokyonight-storm")  -- or "tokyonight-day"

Note-Taking with Neorg

meowvim includes Neorg for structured note-taking:

-- Notes directory (default: ~/notes)
-- Configure in lua/plugins/neorg.lua

Use :Neorg workspace main to access your notes workspace.

Raycast Integration

meowvim includes Raycast scripts for quick launching:

  • bin/meowvim.sh - Launch meowvim with Neovide
  • bin/meowvim-container.sh - Connect to litterbox container

Copy these scripts to your Raycast script directory to enable quick access.

🔧 Troubleshooting

Common Issues

Plugin Installation Fails

# Clear plugin cache and reinstall
rm -rf ~/.local/share/nvim/lazy
nvim --headless "+Lazy sync" +qa

LSP Not Working

  1. Check if the language server is installed:

    :LspInfo
  2. Language servers are managed by the meow. If you installed meowvim as part of meow, they should be automatically available.

  3. 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

Copilot Not Working

  1. Authenticate with GitHub:

    :Copilot auth
  2. Check status:

    :Copilot status

Performance Issues

  1. Check startup time:

    :StartupTime
  2. Disable unused plugins in lua/plugins/

Icons Not Displaying

Install JetBrains Mono Nerd Font.

Getting Help

  • Use :help for Neovim documentation
  • Check :Lazy for plugin management
  • Use <Space>? for Which-key help
  • Check the issues page

🤝 Contributing

Contributions are welcome to help improve meowvim! Here's how you can help:

Ways to Contribute

  • 🐛 Report bugs
  • 💡 Suggest new features
  • 📝 Improve documentation
  • 🔧 Submit code improvements
  • 🎨 Enhance themes and UI

📄 License

This project is licensed under the MIT License. See the LICENSE file for details.

🙏 Acknowledgments

meowvim builds on the excellent work of the Neovim community.

Core Dependencies

Plugins

Inspiration

  • LazyVim - Modern Neovim configuration
  • Spacemacs - Emacs configuration framework

Author

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

Report Bug · Request Feature · Contribute

About

The purr-fect Neovim configuration for a cozy coding session. May or may not increase your productivity by a feline factor.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •