Giter Club home page Giter Club logo

nvim's Introduction

Daronatron NVim

A super opinionated starter to get up and running with NeoVim exactly like I do.

You will need to make sure you have the appropriate language servers installed. My settings expect gopls, eslint, and tsserver. If you do not have these installed globally on your local machine, you'll need to do so before following the quick start.

go install golang.org/x/tools/gopls@latest

npm install -g eslint

npm install -g --save typescript

Quickstart for Mac

  1. brew install neovim
  2. mkdir $HOME/.config/nvim/ && cd $HOME/.config/nvim
  3. git clone https://github.com/doomtickle/nvim .
  4. sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
  5. nvim +PlugInstall +qall

Summary

Daronatron Nvim is comprised of all the Neovim settings, themes, plugins, and keybindings that I use in my daily workflow. It is meant as a reference or jumping-off-point for anyone looking to have a modern, solid Neovim setup with little to no effort.

Disclaimer

I have tried to comment all of the config files extensively so that you may remove anything that is not to your taste. I frequently change things in here and am not always great about documenting them.

You have been warned.

To get the most out of this setup, you should familiarize yourself with the Neovim docs as much as possible.

init.vim

The first file that Neovim calls is init.vim. The init.vim in this repo sources other files in the directory. This gives us some separation between the various parts of our vim config and allows us to maintain them easier. We'll go over each of them below.

plugins.vim

As its name implies, this is where we'll list any plugins that we'll want to include on startup.

This package assumes you will use vim-plug as a plugin manager. If you would like to change this, simply edit your plugins.vim to reflect the requirements of your package manager.

The plugins used in the current setup are:

The configuration and keybindings for these plugins live in various places throughout the repo, but for the most part have been taken directly from each plugin's documentation.

sets.vim

Handles getting a sane starter with all the stuff like I like. This is also where I set the <leader> key to <space>. To see what other options you have, visit the Neovim docs or type :help nvim from inside Neovim.

setup.lua

Where I have the configs, scripts, and (some) keybindings for my plugins.

Some knowledge of lua is required.

auto_commands/auto_commands.vim

Where you will create autocommands and groups of autocommands to run during certain events that neovim fires. The world is your oyster here. I've added a single group to this repo, but the idea is to group your autocommands by event and source them from higher up in the tree. More to come on this...

variables.vim

Neovim allows you to set global variables that your plugins and scripts can look up at any time. I've separated this out and commented it heavily so you can see what's going on.

keybindings.vim

Keybinding Description
<leader>; Go to next buffer
<leader>a Go previous buffer
<leader>vs Split screen vertically
<leader>w Force save buffer
<leader>q Force save buffer and exit
<leader>- Delete current buffer without saving
<leader>b Search open buffers
<leader>f Search files (respects .gitignore)
<CTRL+[h,j,k,l]> Navigate split windows
- Toggle NerdTree

colorscheme

Currently comes with two colorschemes. A light colorscheme that I based off of vim-colors-github, with a few modifications, and a dark theme based on OneDark.

To switch colorschemes, type :colo [color_file_name] from inside nvim. For example:

:colo onedark

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.