Neovim Configuration Manager (Swap/Backup/Try Configurations Easily)

Overview

ncm-rs

Neovim Configuration Manager (Swap/Backup/Try Configurations Easily)

I created this package because I wanted to try out Lazyvim (which is why it is referenced a few times) and other similar configuration packages and plugins without having to manually move my configuration files each time. I also wanted to be able to easily switch between configurations.

Note Tests have been added. Though, this is still to be considered a WIP. Currently Linux and Windows only.

Notable Features (so far)


  • Add multiple configurations
  • Conveniently switch between said configs
  • Automatic initial backup
  • Backup selected/all configurations (demonstrated below)

Install Notes


Warning Make a backup of your current configuration. While NCM will backup your configuration for you, always better to be safe than sorry.

This package uses a file system symlink to swap/change which configuration Neovim will load. When you select a configuration using the load option, it will be symlinked to the ~/.config/nvim directory.

Note An automated backup and setup process has been added.

Update Notes


0.0.6
  • Each configuration now has it's own ~/.config/nvim and ~/.local/share/nvim directories, avoiding any complications when a configuration uses a different nvim package manager, or conflicting versions of plugins.
  • Enhanced Windows support (detects XDG_CONFIG_HOME and XDG_DATA_HOME and acts accordingly, else uses $LOCALAPPDATA)
0.0.5
  • Initial Windows support
  • Added ncm backup command
  • Automated backup and setup process

Install


  1. sudo apt install just (or equivalent for your distro)
  2. git clone https://github.com/instance.id/ncm-rs.git
  3. cd ncm-rs
  4. just install (installs to ~/.local/bin/ncm (might need to be added to $PATH on Windows))

Example Usage

Add a new configuration

ncm add <name> <path> <description (optional)>

Load a configuration

(Once a configuration is loaded, you can use your normal $ nvim commands or custom keybindings as ususal)

ncm load <name>

List current configurations

ncm list

Remove a configuration

ncm remove <name>

Backup current configuration

ncm backup <name (optional)> 

Tests


Tests are currently located in configs.rs and settings.rs (more to come) and are automatically run when using just install but can be run using just test or cargo test


alt text

You might also like...
An async autocompletion framework for Neovim
An async autocompletion framework for Neovim

⚡ nvim-compleet This plugin is still in early development. 📖 Table of Contents Installation Features Configuration Sources Commands Mappings Colors R

Xcode Neovim Replacement-ish.
Xcode Neovim Replacement-ish.

An XCode replacement-ish development environment that aims to be your reliable XCode alternative to develop exciting new [apple] software products 🚀

Failed experiment in downloading random cat image, turning it into ascii and displaying it in Neovim.

cat.nvim Failed experiment in downloading random cat image, turning it into ascii and displaying it in Neovim. Failed as I realized far too late, that

mn is my project to learn rust, I will try to build a markdown editor

med is a markdown editor This is my project to learn rust programming language, I will try to build a powerful markdown editor. Highlight: Support Vim

My try at Advent of Code 2022 in Rust.

Advent of Code 2022 My solutions to Advent of Code 2022, written in Rust. I love seeing the variety of solution other people come up with, so I decide

Errable is an Option with inverted Try-semantics.

Fallible Fallible is an Option with inverted Try-semantics. What this means is that using the ? operator on a FallibleE will exit early if an error

Rust crate for Ok-wrapping and try blocks

tryvial A small crate for Ok-wrapping and try blocks. This is compatible with Result, Option, and any type implementing the unstable std::ops::Try tra

Neovim plugin for moving lines up and down, written in Rust

Moveline.nvim Moveline is a simple plugin for moving lines up and down. It's written in Rust using my library nvim-utils. Installation Moveline can be

A very opinionated, zero-configuration shell prompt
A very opinionated, zero-configuration shell prompt

A very opinionated, zero-configuration shell prompt

Owner
instance.id
DevOps : Cloud Infrastructure Engineer / Game Developer
instance.id
A command line tool for easily generating multiple versions of a configuration file from a single template

MultiConf A command line tool for easily generating multiple versions of a configuration file from a single template. Why? I'm a big fan of the i3 win

Ian Clarke 4 Dec 10, 2022
An adaptation of the Solana token-swap program implementing Curve's StableSwap invariant.

StableSwap Program An adaptation of the Solana token-swap program implementing Curve's StableSwap invariant. Click here to try it out live on the Sola

smaster0517 3 Mar 30, 2022
a crate to swap values between possibly-overlapping references

omniswap: a crate to swap values between possibly-overlapping references Motivating Example You cannot simply use std::mem::swap to replace values wit

Masaki Hara 21 Nov 30, 2022
A fully modular window manager, extremely extensibile and easily approachable.

AquariWM is a fully modular window manager, allowing extreme extensibility while remaining easily approachable. Installation AquariWM is currently in

AquariWM Window Manager 8 Nov 14, 2022
Tools to encrypt/decrypt and pack/unpack RouterOS v6.13+ backup files

RouterOS-Backup-Tools Tools to encrypt/decrypt and pack/unpack RouterOS v6.13+ backup files Usage examples Info cargo run -- info -i MikroTik.backup D

Marco Grassi 24 Dec 5, 2022
A command-line tool and Docker image to automatically backup Git repositories from GitHub or anywhere

A command-line tool and Docker image to automatically backup Git repositories from GitHub or anywhere

Jake Wharton 256 Dec 27, 2022
🔭 Search Dash.app from Neovim with Telescope. Built with Rust 🦀 and Lua

Dash.nvim Query Dash.app within Neovim with a Telescope picker! The theme used in the recording is lighthaus.nvim. Note: Dash is a Mac-only app, so yo

Mat Jones 193 Dec 28, 2022
Neovide - No Nonsense Neovim Client in Rust

Neovide This is a simple graphical user interface for Neovim (an aggressively refactored and updated Vim editor). Where possible there are some graphi

Neovide 9.3k Jan 5, 2023
Expand your possibilities with the Try ? Operator

Expand your possibilities with the Try ? Operator Have you ever found yourself writing a function which may return early based on some condition? fn m

EC 1 Feb 1, 2022
try to find the correct word with only first letter and unknown letter count.

MOTUS Current dictionaries are provided in french and can contain some words not included in the official Motus dictionary. Additionally, dictionaries

Alexandre 6 Apr 11, 2022