Giter VIP home page Giter VIP logo

nvim's Introduction

neovim config

i try to use neovim everywhere, and where i do, i also use this config.
who needs mice anyways...

requirements

  • NeoVim 0.10.0 (or greater)

    • will also work with some older versions of nvim, but some features may break.
  • many language servers need npm to be installed, and grammarly needs cargo.

    • npm
    • cargo
  • also you may need to run the following to allow the installation of other packages:

    • sudo apt install python3-pip python3-dev python3-setuptools python3.10-venv

setup

clone this repo into ~/.config/nvim/.
wait for the syncing to finish. if there are issues, check whether you fulfill the requirements, close and reopen and press space u a to update the plugins just in case. quit that window and from withing nvim press space u m to install language servers, formatters and linters. both of these key combinations are used for updating too, so rerun them as you like, especially if there are issues.

usage

key mappings

anything written inbetween angled brackets like so <something> needs to be pressed simultaneously, like <C-n> being ctrl + n. alternantively it can be a special key in any other way.
examples:

  • <C> control
  • <S> shift
  • <M> meta
  • <Tab> tabulator
  • <Esc> escape
  • <leader> currently set to space

anything else has to be pressed in the order that it is shown.
therefore, <leader> + ua translates to first pressing space, then u and then a.
this makes working with vim like replacing a mouse with typing a text. while this may sound horrible to you right now, i can assure you that it's amazing.

if you want to change any mapping or want to get a deeper understanding, they can be found in three places:

  • original vim mappings can be found in their docs
  • most custom mappings can me found in ./lua/mappings/
  • some custom mappings are either defaults of the respective plugin, which can be found in their documentation, or set in the respective plugins configuration file in ./lua/configs/.

plugins

if you need any plugin that isn't included, add it in the ./lua/plugins/ directory.
if any plugin isn't needed or it doesn't work and you just wanna get rid of it quickly, uncomment it in ./lua/plugins/.

lsps

if you need a language server, refer to ./lua/configs/lsp.lua and ./lua/configs/mason-installer.lua. the lspconfig builds the connection between nvim and the respective lsp, while mason ensures that the lsp is installed.
after adding an lsp to the config and mason, press <leader> + um to update with mason, which installs the lsp if possible.
sometimes an lsp may need an external tool, like pyright needing npm to install.

rust is an exception. it has to be handled differently. installing that is on the roadmap.

external programs

telescope is an amazing fuzzy finder plugin that requires ripgrep to be installed.

lazygit is an external program that brings a tui for git to not only the commandline, but also nvim. if installed, it can be opened with <leader> + gg and left with q.

theming

this repo is built around using catppuccin.

FAQ:

Q: is it any good?
A: yes

nvim's People

Contributors

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