Skip to content

Frusadev/frusavim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

79 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 - Catppuccin, Evergarden, Tokyodark, Tokyo Night, Nord, Kanagawa, Everforest, Melting, Vague, Flexoki, and more
  • Modern StatusLine - Lualine with Git + LSP status (Tokyodark theme)
  • Smart Buffer Management - BufferLine tabs with diagnostics
  • Dual File Explorers - NvimTree (<C-n>) + Neo-tree with Git/diagnostics
  • Command UI Enhancements - Noice.nvim for messages and cmdline UI
  • Indent Guides + Scrollbar - indent-blankline + nvim-scrollbar
  • Floating Terminal - nvterm with horizontal/vertical/float layouts

🧠 AI-Powered Development

  • GitHub Copilot - Intelligent code completion and suggestions
  • Smart Snippets - LuaSnip with friendly-snippets

πŸ”§ Language Support & LSP

  • Built-in LSP (Neovim 0.12) - basedpyright, lua_ls, vtsls, gopls, rust-analyzer, nimlangserver, intelephense, gleam, dockerls, clangd, and more
  • Auto-formatting - Conform.nvim with Biome, Ruff, Stylua, gofmt, nimpretty, pint, clang-format, and more
  • Linting - nvim-lint with Biome, flake8, htmlhint, jsonlint, phpstan
  • DAP Core - nvim-dap installed (configure adapters per language)

πŸ“ Project Management

  • Project Switching + Sessions - neovim-project with session restore
  • Git Integration - LazyGit, Telescope git commands, and diff highlighting
  • Workspace Navigation - Project history + file pickers

⚑ Performance & Productivity

  • Lazy Loading - Fast startup with lazy.nvim plugin management
  • Fuzzy Finding - Telescope for files, buffers, and live grep
  • Auto-completion - nvim-cmp with LSP + snippets
  • Multiple Cursors - Edit multiple locations simultaneously
  • Auto-save - Background saves with auto-save.nvim
  • Surround + Autopairs - nvim-surround and nvim-autopairs

πŸ“Έ Preview

Screenshot From 2026-05-21 23-55-49 Screenshot From 2026-05-21 23-56-31

πŸš€ Installation

Prerequisites

  • Neovim 0.12+ - 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
  • Tree-sitter CLI - Required for tree-sitter-manager parser installs
  • LazyGit (optional) - For the LazyGit integration

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

⌨️ 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         └─ as  Auto-save
└─ 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:

  • Catppuccin - Soothing pastel theme
  • Evergarden - Nature-inspired colors
  • Tokyodark - Modern dark theme
  • Tokyo Night - Iconic neon palette
  • 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
  • Vague - Soft, low-contrast theme
  • PosterPole - Bold vintage palette
  • Flexoki - Warm, balanced colors
  • Oldworld - Vintage-inspired palette
  • Shadotheme, Miramare, Spacegray, Xresources, Agila, and more

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

πŸ› οΈ Language Support

Fully Supported Languages

  • Python - basedpyright, Ruff formatting
  • JavaScript/TypeScript - vtsls, Biome formatting/linting
  • Go - gopls, gofmt
  • Rust - rust-analyzer
  • Lua - lua-language-server, stylua formatting
  • HTML/CSS - html-lsp, cssls, Tailwind CSS
  • JSON/TOML - Validation + formatting (jsonlint, jq, taplo)
  • Nim - nimlangserver, nimpretty formatting
  • Gleam - gleam LSP + formatter
  • C/C++ - clangd, clang-format
  • PHP - intelephense, phpstan, pint
  • Docker - dockerls + docker compose LSP

Auto-installed Tools

  • Language servers via Mason (basedpyright, vtsls, gopls, rust-analyzer, nimlangserver, intelephense, clangd, dockerls)
  • Formatters (Biome, Ruff, Stylua, gofmt, nimpretty, pint, clang-format)
  • Linters (Biome, flake8, htmlhint, jsonlint, phpstan)
  • Debug core (nvim-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
β”‚   β”œβ”€β”€ lsp/
β”‚   β”‚   └── config.lua        # LSP setup (Neovim 0.12)
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   β”œβ”€β”€ lazy.lua          # Plugin manager config
β”‚   β”‚   └── lazycode.lua      # VSCode-only plugins
β”‚   β”œβ”€β”€ code/
β”‚   β”‚   └── init.lua          # VSCode entry point
β”‚   β”œβ”€β”€ plugins/              # Plugin specifications
β”‚   β”‚   β”œβ”€β”€ ai.lua            # AI assistants
β”‚   β”‚   β”œβ”€β”€ essential.lua     # Core UX plugins
β”‚   β”‚   β”œβ”€β”€ general.lua       # UI + tooling
β”‚   β”‚   β”œβ”€β”€ mason.lua         # LSP/tool installers
β”‚   β”‚   β”œβ”€β”€ neotree.lua       # Neo-tree explorer
β”‚   β”‚   β”œβ”€β”€ nvimtree.lua      # NvimTree explorer
β”‚   β”‚   β”œβ”€β”€ telescope.lua     # Fuzzy finder
β”‚   β”‚   β”œβ”€β”€ themes.lua        # Theme plugins
β”‚   β”‚   └── ...
β”‚   └── configs/              # Plugin configurations
β”‚       β”œβ”€β”€ cmp.lua           # Completion config
β”‚       β”œβ”€β”€ conform.lua       # Formatter config
β”‚       β”œβ”€β”€ lualine.lua       # Statusline config
β”‚       β”œβ”€β”€ neotree.lua       # Neo-tree config
β”‚       β”œβ”€β”€ nvim-lint.lua     # Linting config
β”‚       β”œβ”€β”€ term.lua          # Terminal config
β”‚       └── ...
└── ftplugin/                # Filetype-specific settings
    β”œβ”€β”€ go.lua
    β”œβ”€β”€ nim.lua
    β”œβ”€β”€ rust.lua
    └── text.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/lsp/config.lua to add or remove language servers:

vim.lsp.enable("your_lsp", {
  -- your configuration
})

Project Paths

Customize project discovery in lua/plugins/essential.lua (neovim-project):

projects = {
  "~/Workspace/Projects/Personal/*",
  "~/Workspace/Projects/Pro/*",
  "~/Workspace/Projects/Forks/*",
  "~/.config/*",
}

🚨 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

 
 
 

Contributors

Languages