Skip to content

Frusadev/frusavim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

52 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ FRUSAVIM

A modern, feature-rich Neovim configuration designed for productivity and ease of use

Neovim Version Lua License

✨ Features

🎨 User Interface

  • 24+ Premium Themes - Tokyo Night, Catppuccin, Evergarden, Nord, and many more
  • Modern StatusLine - Beautiful Lualine with Git integration and LSP status
  • Smart Buffer Management - BufferLine with tabs and quick navigation
  • File Explorer - NvimTree with Git status indicators
  • Floating Terminal - Integrated terminal with multiple layouts

🧠 AI-Powered Development

  • GitHub Copilot - Intelligent code completion and suggestions
  • Avante.nvim - Advanced AI assistant with Gemini integration
  • Smart Snippets - LuaSnip with custom snippet collections

πŸ”§ Language Support & LSP

  • 25+ Language Servers - Python, JavaScript/TypeScript, Go, Rust, Nim, V, and more
  • Auto-formatting - Conform.nvim with language-specific formatters
  • Linting - Real-time error detection with nvim-lint
  • Debug Support - DAP integration for Python and other languages
  • Treesitter - Advanced syntax highlighting and code parsing

πŸ“ Project Management

  • Smart Project Detection - Automatic project root detection
  • Session Management - Restore your workspace exactly as you left it
  • Git Integration - LazyGit, telescope git commands, and diff highlighting
  • Workspace Navigation - Quick project switching and file finding

⚑ Performance & Productivity

  • Lazy Loading - Fast startup with lazy.nvim plugin management
  • Fuzzy Finding - Telescope for files, buffers, and live grep
  • Auto-completion - Intelligent completion with multiple sources
  • Multiple Cursors - Edit multiple locations simultaneously
  • Surround Operations - Quick text manipulation with nvim-surround

πŸ“Έ Preview

Frusavim

πŸš€ Installation

Prerequisites

  • Neovim 0.10+ - Install Neovim
  • Git - For cloning repositories
  • Node.js 18+ - For LSP servers and Copilot
  • Python 3.8+ - For Python development features
  • Ripgrep - For telescope live grep functionality

Quick Setup

# Backup your existing config (if any)
mv ~/.config/nvim ~/.config/nvim.backup

# Clone FrusaVim
git clone https://github.com/Frusadev/frusavim.git ~/.config/nvim

# Launch Neovim (plugins will auto-install)
nvim

Post-Installation

  1. Install Language Servers: Run :MasonInstallAll to install all configured LSP servers
  2. Setup Copilot: Run :Copilot auth to authenticate GitHub Copilot
  3. Configure Python: Set your Python virtual environment with <leader>cv

⌨️ Key Mappings

Leader Key: Space | πŸ“– Full Documentation: mappings.md

πŸš€ Quick Reference - Most Used Commands

Category Mapping Action Description
Files <leader>ff Find files Search files (including hidden)
<leader>fw Live grep Search text across all files
<leader>fb Find buffers Search and switch between buffers
Ctrl+n File tree Toggle NvimTree sidebar
Navigation gd Go to definition Jump to symbol definition
gr Show references Display all symbol references
K Hover info Show documentation
Tab / Shift+Tab Switch buffers Navigate between open buffers
Editing <leader>/ Toggle comment Comment/uncomment lines
<leader>fm Format code Format using LSP + Conform
<leader>ra Rename Intelligent symbol renaming
du Duplicate line Duplicate current line
Git <leader>lg LazyGit Open LazyGit interface
<leader>cm Git commits Browse commit history
<leader>gt Git status View git status
Windows <leader>v Vertical split Split window vertically
<leader>h Horizontal split Split window horizontally
Ctrl+h/j/k/l Navigate Move between windows
Terminal Alt+h/v/i Toggle terminal Horizontal/Vertical/Float
Ctrl+x Exit terminal Return to normal mode
Themes <leader>th Theme selector Browse and apply themes

πŸ“‹ Essential Mappings

Leader Key: Space

Files & Search:          Navigation:               Editing:
β”œβ”€ ff  Find files        β”œβ”€ gd  Go to definition   β”œβ”€ /   Toggle comment
β”œβ”€ fw  Search text       β”œβ”€ gr  Show references    β”œβ”€ fm  Format code  
β”œβ”€ fb  Find buffers      β”œβ”€ gi  Implementation     β”œβ”€ ra  Rename symbol
└─ fe  File browser      └─ K   Hover info         └─ ca  Code actions

Buffers & Windows:       Terminal & Git:           Customization:
β”œβ”€ Tab    Next buffer    β”œβ”€ Alt+h  H-terminal      β”œβ”€ th  Themes
β”œβ”€ S-Tab  Prev buffer    β”œβ”€ Alt+v  V-terminal      β”œβ”€ n   Line numbers
β”œβ”€ x      Close buffer   β”œβ”€ Alt+i  F-terminal      β”œβ”€ rn  Relative nums
β”œβ”€ v      V-split        β”œβ”€ lg     LazyGit         └─ cv  Python venv
└─ h      H-split        └─ Ctrl+x Exit terminal

πŸ’‘ Tip: Press <leader>? to see buffer-local keymaps or check mappings.md for the complete reference with 100+ mappings!

🎨 Supported Themes

FrusaVim comes with 24+ carefully selected themes:

  • Tokyo Night (Default) - Modern dark theme
  • Catppuccin - Soothing pastel theme
  • Evergarden - Nature-inspired colors
  • Nord - Arctic-inspired palette
  • Kanagawa - Japanese aesthetics
  • One Dark Pro - Atom's iconic theme
  • Everforest - Green forest theme
  • Melting - Unique gradient theme
  • Lackluster - Minimalist approach
  • Ayu - Clean and elegant
  • NeoSolarized - Classic Solarized
  • Darkrose - Rose-tinted dark theme
  • And many more...

Use <leader>th to browse and switch themes instantly!

πŸ› οΈ Language Support

Fully Supported Languages

  • Python - BasedPyright, Ruff formatting, virtual env support
  • JavaScript/TypeScript - Biome, ESLint, Prettier
  • Go - gopls, auto-formatting
  • Rust - rust-analyzer, cargo integration
  • Lua - lua-language-server, stylua formatting
  • HTML/CSS - Auto-completion, formatting
  • JSON/TOML - Validation, formatting
  • Nim - Language server, custom formatting
  • V Language - v-analyzer support
  • C/C++ - clangd, clang-format
  • PHP - phpactor, formatting
  • Svelte - Full framework support
  • Gleam - Modern functional language
  • Docker - Dockerfile support

Auto-installed Tools

  • Language servers via Mason
  • Formatters (Biome, Prettier, Black, etc.)
  • Linters (ESLint, Flake8, etc.)
  • Debug adapters (Python DAP)

πŸ“ Project Structure

~/.config/nvim/
β”œβ”€β”€ init.lua                 # Entry point
β”œβ”€β”€ lazy-lock.json          # Plugin version lock
β”œβ”€β”€ lua/
β”‚   β”œβ”€β”€ settings.lua         # Core Neovim settings
β”‚   β”œβ”€β”€ mappings.lua         # Key mappings
β”‚   β”œβ”€β”€ autocmds.lua         # Auto commands
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   └── lazy.lua         # Plugin manager config
β”‚   β”œβ”€β”€ plugins/             # Plugin specifications
β”‚   β”‚   β”œβ”€β”€ themes.lua       # Theme plugins
β”‚   β”‚   β”œβ”€β”€ lsp.lua          # LSP plugins
β”‚   β”‚   β”œβ”€β”€ telescope.lua    # Fuzzy finder
β”‚   β”‚   β”œβ”€β”€ ai.lua           # AI assistants
β”‚   β”‚   └── ...
β”‚   └── configs/             # Plugin configurations
β”‚       β”œβ”€β”€ conform.lua      # Formatter config
β”‚       β”œβ”€β”€ lspconfig.lua    # LSP settings
β”‚       β”œβ”€β”€ telescope.lua    # Search config
β”‚       └── ...
└── ftplugin/               # Filetype-specific settings
    β”œβ”€β”€ python.lua
    β”œβ”€β”€ javascript.lua
    └── ...

πŸ”§ Customization

Adding New Themes

  1. Add theme plugin to lua/plugins/themes.lua
  2. Configure in lua/configs/themes/
  3. Select with <leader>th

Custom Key Mappings

Edit lua/mappings.lua to add your own mappings:

local map = vim.keymap.set
map("n", "<leader>custom", ":YourCommand<CR>", { desc = "Your description" })

Language Server Configuration

Modify lua/configs/lspconfig.lua to add new language servers:

lspconfig["your_lsp"].setup({
  -- your configuration
})

Project Patterns

Customize project detection in lua/configs/proj.lua:

project_dir_pattern = {
  ".git",
  "package.json",
  "Cargo.toml",
  -- add your patterns
}

🚨 Troubleshooting

Common Issues

Plugins not loading?

:Lazy sync

LSP not working?

:MasonInstallAll
:LspInfo

Slow startup?

:Lazy profile

Copilot not working?

:Copilot auth
:Copilot status

🀝 Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

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

πŸ™ Acknowledgments


Made with ❀️ by Frusadev

Happy coding! πŸš€

About

A modern, feature-rich Neovim configuration designed for productivity and ease of use.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages