MyNvim is a comprehensive and simple configuration setup for Lua programming in Neovim, designed to provide an optimized and perfect editing experience. It comes with a built-in debugger specifically for the Lua language, making it everything you need to program in Lua within Neovim.
Before installing, run the following commands to remove any old Neovim configurations:
rm -rf ~ /.local/share/nvim/*
rm -rf ~ /.local/state/nvim/*
rm -rf ~ /.config/nvim/*
rm -rf ~ /.config/nvim/.*
mkdir -p ~ /.config/nvim Next, install the new configuration:
cd ~ /.config/nvim
git clone https://github.com/gitalexcampos/luaforneovim.git ./sudo pacman -S neovim npm python unzip ttf-nerd-fonts-symbols ripgrep sudo apt-get install neovim npm python unzip python3-venv ripgrep In Ubuntu you need to install symbol nerd font manually
brew -S neovim npm python unzip ripgrep Use wsl2 with ubuntu or arch linux.
If you use NixOs, check out my Dotfiles for Nixos.
Test Your New Neovim Setup To test your new configuration, simply run:
Comprehensive plugin management Enhanced performance settings Custom keybindings Improved user interface Shortcut Functionality (Espace) + kIncrement a number (Espace) + jDecrement a number (Espace) + +Increment a number (Espace) + -Decrement a number
Shortcut Functionality (Shift) + nCreate new tab (Shift) + RightMove current tab to right (Shift) + LeftMove current tab to left (Shift) + lGo to next tab (Shift) + hGo to previous tab (Shift) + xClose current tab (Shift) + cOpen current buffer in new tab
Shortcut Functionality (Ctrl) + =Make splits equal size (Ctrl) + xClose current split |Make a Vsplit _Make a Hsplit (Ctrl) + kMove cursor to up window (Ctrl) + jMove cursor to down windows (Ctrl) + lMove cursor to left window (Ctrl) + hMove cursor to right window (Ctrl) + UpResize window to up (Ctrl) + DownResize windows to down (Ctrl) + LeftResize window to left (Ctrl) + RightResize window to right
Shortcut Functionality (Espace) + ffFuzzy find files in cwd (Espace) + frFuzzy find recent files (Espace) + fsFind string in cwd (Espace) + fcFind string under cursor in cwd
File Explorer Management Tree Shortcut Functionality (Espace) + eToggle file explorer
Shortcut Functionality (Espace) + wrRestore session for cwd (Espace) + wsSave session for auto session root dir
Shortcut Functionality (Espace) + gOpen LazyGit
Shortcut Functionality (Espace) + smMaximize/minimize a split
Shortcut Functionality CTRL + cCopy selection
Shortcut Functionality (Espace) + nCreate or erase breakpoint F5Start Debugging F10Step Over F11Step Into F12Step Out
Plugin Description alpha-nvim A dashboard for Neovim that provides a better startup experience. auto-session Automatically saves and restores your sessions, making workflow seamless. nvim-autopairs Automatically closes pairs of characters like brackets and quotes. bufferline.nvim A buffer line for Neovim that provides an intuitive way to navigate buffers. catppuccin A cozy and aesthetic color scheme for Neovim. dressing.nvim Enhance Neovim's UI for select and input dialogs. conform.nvim A framework for automatic formatting of code in Neovim. indent-blankline.nvim Adds indentation guides to Neovim to improve code readability. plenary.nvim A Lua library for Neovim that provides useful functions and utilities. lazygit.nvim Integrates LazyGit with Neovim for an enhanced Git experience. nvim-lint Provides linting support for various file types in Neovim. lualine.nvim A fast and easy-to-configure status line plugin for Neovim. nvim-cmp A completion plugin for Neovim that provides auto-completion features. nvim-tree.lua A file explorer for Neovim that allows easy navigation and management of files. nvim-surround Easily add, remove, or change surrounding characters in Neovim. telescope.nvim A fuzzy finder for Neovim that helps you search and filter files and content. nvim-treesitter Provides better syntax highlighting and code navigation through tree-sitter integration. vim-maximizer Easily maximize and restore windows in Neovim for better workflow. which-key.nvim Displays available keybindings in a popup to help discover shortcuts. mason.nvim A package manager for Neovim that simplifies installing and managing external tools. nvim-lspconfig Quickstart configurations for the Neovim LSP client. nvim-dap Debug Adapter Protocol Local Lua Debugger Debug Adapter ProtocolA simple Lua debugger which requires no additional dependencies.
LSP Description html Language server for HTML, providing features like validation and autocomplete. cssls Language server for CSS, offering syntax highlighting and intellisense. lua_ls Language server for Lua, enabling autocompletion and error checking. graphql Language server for GraphQL, offering schema support and query validation. pyright Language server for Python, offering type checking and other features. clangd Language server for C/C++, providing code completion and navigation. yamlls Language server for YAML, enabling validation and autocomplete for YAML files. jsonls Language server for JSON, offering schema validation and autocompletion.
Linter Description prettier A code formatter that enforces a consistent style across various languages. stylua A formatter for Lua code, ensuring consistent formatting. isort A Python utility for sorting imports in a consistent order. black A popular opinionated Python code formatter that enforces PEP 8 compliance. pylint A static code analysis tool for Python, providing error checking and code quality checks. eslint_d A fast, extensible linter for JavaScript and TypeScript code, ensuring code quality. cpplint A linter for C and C++ code, enforcing Google style guidelines. shellcheck A linter for shell scripts that provides warnings and suggestions for best practices. yamllint A linter for YAML files, checking for syntax errors and best practices. jsonlint A linter for JSON files that validates and formats JSON code.
This project is based on the setup guide by Josean . Thank you for the valuable insights!
Feel free to explore and customize it further to suit your needs!