Giter Site home page Giter Site logo

base.nvim's Introduction

Base

This project is a work in progress expect a bumpy road while things are getting filled in

A baseline Neovim configuration that anyone can build from to have a setup uniquely their own.

This repo is a base template for those who want to skip using a preconfigured configuration of Neovim and would rather build their own configuration. This is not a batteries included experience, its more of a starting point to teach you how to fish.

Goals

  • No custom code or logic
    • No usage of custom module systems or complicated code organization
    • Only native Neovim functions and API's
  • Plugins added with a purpose
    • Every plugin added is also used as an example of how to do something else
    • No "everyone uses it so we added it"
    • Users should be empowered to add plugins day 1 and extending their config - we don't want to take those opportunities away by including too much
    • Find other awesome plugins at awesome-list or neovimcraft
  • Programming language/Use case agnostic
    • Project should work for anyone regardless of their reason for using Neovim
  • Well documented examples
    • With any example shown there will be helpful comments linking to help docs and external resources
  • Scalable setup
    • Config should be ready to grow with the user as they customize - for this reason the config is not presented as a single file

Getting Started

If you have an existing Neovim setup move it to a backup location in case you want it back or to copy from it.

mv ~/.config/nvim ~/.config/nvim-backup

Clone packer.nvim the package manager used in this project to download and manage plugins.

git clone --depth 1 https://github.com/wbthomason/packer.nvim\
 ~/.local/share/nvim/site/pack/packer/start/packer.nvim

Clone base to config location.

git clone --depth 1 https://github.com/skbolton/base.nvim ~/.config/nvim

Move into config directory.

cd ~/.config/nvim

Remove existing git directory. Seriously! Moving forward this config will be yours and in the spirit of the project you shouldn't need to sync with the repo anymore.

rm -rf .git

This would also be a good time to start your own git repo if you don't have a backup solution in place.

git init
git add -A
git commit -m "initial commit using base template"

Next launch Neovim and install all the plugins using packer.nvim. The +PackerSync syntax below tells Neovim to run the command on startup. You could also launch Neovim and run :PackerSync to achieve the same affect.

run :help startup-options in Neovim for an explanation on the + syntax used here

nvim +PackerSync

At this point all the plugins should be installed and the baseline ready to go. init.lua is the entry point and the best file to start with to learn how things work.

Other options

The Neovim ecosystem moves fast! It can be a lot of work building, updating, and maintaining your own personalized configuration. Sometimes, especially when starting out, you need a full batteries included preconfigured configuration to get you off the ground. There is a growing list of these configurations you can find here. Try anyone of these out and see if they work for you. If down the line you feel like you want to build your own this project will be here!

base.nvim's People

Contributors

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