Giter VIP home page Giter VIP logo

nvim's Introduction

NVIM Config

docker build Lua Neovim Stable Neovim Nightly Work In Progress

Preview

dashboard

buffer

Old Video Showcase https://user-images.githubusercontent.com/4050749/169545588-198c7dab-11fa-4306-bcd0-9f1eea4b0556.mp4

Try it out with Docker!

(nightly version)

docker run -it \
  -v $(pwd):/mnt/workspace \
  danielnehrig/nvim:nightly

Pitch

This Config represents a full IDE experience
Focus on idiomatic opinionated mappings with simplicity

Synopsis I've been using vim for about 10 years now

While I was aware that neovim was a thing I didn't really understand or tried to understand which problems it tries to solve which vim has one day I jumped about features for the 0.5.0 upcoming release which was about the native LSP in neovim while I was using YCM at that time for VIM (which I was pretty happy with) I thought lets give it a shot how it works for neovim this is when I realized that neovim had a LUA JIT implemented at that moment I was sold to it due to prior lua experience I investigated the lua plugin ecosystem while fairly small at that time it grew and grew and grew... It looked promising now we are here back at it again configuring the same editor with better features this time getting an IDE like experience getting rid of prior pain points with vim and getting rid of bad habits. The journey begins

Started 09.04.21

CONFIG SETUP:

  • IDE capabilities (lsp, debug, project management, build, lint, test) ✅
  • remove unused plugins ✅
  • move to the build in LSP ✅
  • add formatting and linting ✅
  • Debug ✅
  • intuitive mappings ✅
  • fast tab/buffer navigation ✅
  • project management ✅
  • file management ✅
  • lazy load plugins ✅
  • Treesitter Setup ✅
  • Refactoring ✅

Philosophy and side infos

Vim is a modal text editing solution so is neovim
it does not strive to be an IDE, but it offers IDE like capabilities
with it's exposed lua API and the Community revolving around it
creating a big up-and-coming plugin ecosystem
since vim/neovim are writtin in c it's a blazing fast editor
vs its competitors while it has its plugin ecosystem and IDE like capabilities
it does not offer an out-of-the-box solution like VSCode
for that case boilerplate configurations like Lunarvim or Lvim are out there
even this config would be a great place to start to have IDE like capabilities

Setup

Manual Setup

  1. git clone https://github.com/danielnehrig/nvim ~/.config/nvim && cd ~/.config/nvim
  2. ./package.py
  3. nvim +'autocmd User LazyInstall sleep 100ms | qa'
  4. nvim +'autocmd User LazyDone TSInstall all' +'Lazy sync'

Requirements

Most of the requirements can be installed over the ./package.py script
It mostly installed LspServers,Linters,Formatters
you don't need to install them if you don't want them or already have everything you need

Requirements

Font:

Nerd Font any Monospaced One (if not monospaced the dashboard logo will not work) I use FiraCode Nerd Font Mono for regular and bold and VictorMono Nerd Font for italics

Package managers:

  • python3.9 >
  • pip
  • node
  • go
  • rust/cargo
  • luarocks
  • brew (mac support)
  • yay (arch aur support)

NVIM V ^0.9.*

LSPs in path:

  • pyright
  • efm (for lint and formatting mainly lua and JS, TS)
  • typescript-language-server
  • rust-analyzer
  • gopls
  • sumneko-lua
  • jdtls
  • etc... check lsp config for more info or the package install python script

Customize

We have a config layer copy and paste the default config layout from config.core.default_config and create folder and file rootFolder/lua/config/custom/init.lua paste in the default_configs values and adjust accordingly if you have the lua language server properly setup you should be getting some heat auto completions for all kinds of possible completions for the config or take a look at the config class

Supported Languages / Syntax

The Config should fully support:

Languages
  • Typescript / Javascript
  • CSS/SASS/SCSS
  • Rust
  • Java
  • C, C++
  • C# (omnisharp)
  • Go
  • Dockerfile
  • Yaml
  • Json
  • Python
  • Lua
  • Toml

Mappings

Maps
  • Space is the leader key (which key will help you navigate once you press space)

  • d - is for Debug

  • g - is for misc LSP actions

  • b - build (test, build, in buffer interpreter snip run)

  • q - quickfix

  • l - loclist

  • u - utility (disable diagnostic etc)

  • f - file related (telescope)

  • w - window

There are some remaps to default mappings for example if an LSP Server attaches
see mappings.lua for more info

Inspirations, sources and thanks

you are probably better of using these since they are community driven I'm the sole maintainer of this config

  • Lvim
  • nvchad and module suite
    • Theme based solution
    • If the theme modules wouldn't be strictly written for nvchad I would have used their module
  • base16

nvim's People

Contributors

danielnehrig avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

nvim's Issues

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.