Coder Social home page Coder Social logo

mpuvim's Introduction

A fast, lightweight and easy-to-use Neovim configuration, for you to spend more time writing beautiful code.

Last commit Stars Issues Repo Size



🏁 Introduction

mpuVim is a simple, lightweight configuration of Neovim.

Out of the box, it provides all the necessary features you would expect in your text editor, like syntax highlighting, linting, auto-completion and quality of life plugins like telescope. Of course, also equipped with the best remaps and settings.

By default, mpuVim provides you with the language server for the most popular languages, but using Mason, you can install lsp's for any language you would like. (Read more about Mason in guidelines)

For theme, mpuVim uses kanagawa wave by default. However, anything is customizable. (Read more about customizing the config yourself in guidelines)

If you are tired of bloated, slow text editors and want a simple and easily customizable Neovim configuration, mpuVim is for you!


✨ Features

  • πŸ”₯ Receive a full fledged IDE with one single command
  • πŸ’¨ Blazingly fast
  • πŸ› οΈ Easily customizable and extendable
  • 🧩 Plethora of useful plugins preinstalled
  • βš™οΈ Well chosen default settings and keymaps

πŸš€ Installation

Requirements

  • Neovim installed
  • Node installed

To install mpuVim on your system, simply run the command appropriate for your operating system. Make sure to back up an existing config in ~/.config/nvim if you have one.

Linux & MacOS

git clone https://github.com/eliasuran/mpuVim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim

Windows

git clone https://github.com/eliasuran/mpuVim.git %userprofile%\AppData\Local\nvim\ 

⚑️ Quickstart

Once you have completed the installation, open Neovim in your terminal by running

nvim

Aaaaand you're in. You now have a fully configured Neovim ready to go. Realistically, you don't have to do any more configuration.

The most important keybinds/notes to get started

  • The leader key is set to Space by default

  • By clicking the leader key, after a bit a menu with possible commands will appear, use this to check for possible commands and key mappings for them.

  • You can access Telescope, a fuzzy finder for all files in your directory, by clicking leader + ff

  • You can pull up Netrw to view the file tree by clicking leader + ft

If you want to learn what plugins are used, reference #plugins.

To extend and learn how to further configure and customize mpuVim to your liking, reference #extending.


🧩 Plugins


πŸ“˜ Extend your Neovim Experience


Heads up

This section will cover how to extend mpuVim with your own plugins, and how to further customize and configure mpuVim to your own liking.

Due to that, this section is aimed towards more experienced Neovim users who already know a thing or two about Neovim and the ecosystem

Refer to this project setup when unsure of where a file is or should be located

~/.config/nvim
β”œβ”€β”€ lua
β”‚Β Β  └── config
β”‚Β Β   Β Β  β”œβ”€β”€ init.lua
β”‚Β Β    Β  β”œβ”€β”€ lazy.lua
β”‚Β Β  Β    β”œβ”€β”€ options.lua
β”‚Β Β  Β Β   └── remaps.lua
β”œβ”€β”€ afterΒ Β  
β”‚Β Β  └── plugin
β”‚Β Β      β”œβ”€β”€ cmp.lua
β”‚       β”œβ”€β”€ indent-blankline.lua
β”‚       β”œβ”€β”€ lsp.lua
β”‚       β”œβ”€β”€ neoformat.lua
β”‚       β”œβ”€β”€ telescope.lua
β”‚       β”œβ”€β”€ theme.lua
β”‚       └── treesitter.lua
β”‚Β Β      
└── init.lua

Changing theme

Everything related to the theme is located in after/plugin/theme.lua.

When changing theme, configure it in this file, but remember to add the new theme's plugin to lua/config/lazy.lua and removing kanagawa which would be unused. (How this is done is explained under)

Adding or removing plugins

All of mpuVim's plugins are in the lua/config/lazy.lua file, and under local plugins.

To remove or add a plugin, simply remove or add it from the list respectively. Since mpuVim is using the lazy package manager, everything that is needed for a plugin is a string with the link.

When adding or removing a plugin, make sure to exit and reopen Neovim, and you will see lazy downloading it automatically.

Configuring plugins

Configuration for any plugin is done in the after/plugin directory. Each file represents the configuration of a single plugin.

To edit the configuration of an already configured plugin, navigate to its configuration file in the plugin directory. From there, edit it as you please, and it will be updated once you close and reopen Neovim.

When adding your own configuration for a plugin, just create a new file and include any configuration you might like. If the file is in after/plugin, it will automatically apply to the installed plugin. As simple as that!

Remaps

  • mpuVim uses which-key.nvim to help you remember keymaps.
  • Pressing any key will bring up a popup of possible commands following that key.
  • All remaps can be found in the lua/config/remaps.lua file.
  • Adding, removing or editing key mappings in this file will automatically apply it to Neovim.

Settings

  • All settings can be found in lua/config/options.lua.

  • Like with key mappings, adding, removing or changing settings in this file will apply them to all of Neovim automatically.

Extra

  • Tmux works really well with Neovim since you only need the terminal, and is perfect for a tiling window manager.
  • Tmux integration is done really well with the vim-tmux-navigator plugin, so would highly recommend.

🀝 Support

You can support mpuVim by giving it a star at https://github.com/eliasuran/mpuVim <3

mpuvim's People

Contributors

eliasuran avatar

Stargazers

Elvin Baloku avatar Iver Morland Karlsvik avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.