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

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

Need a powerful and simple library to work with arithmetic progressions in Rust? You should definitively try out ariprog!

Ariprog I had a test (03/2024) on arithmetic progressions, so I decided to create a library to study math. Taking advantage of the fact that I was stu

🔭 Search Dash.app from Neovim with Telescope. Built with Rust 🦀 and Lua
🔭 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

Neovide - No Nonsense Neovim Client in Rust
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

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

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 libadwaita/gtk4 app for editing NixOS configurations

NixOS Configuration Editor A simple NixOS configuration editor application built with libadwaita, GTK4, and Relm4. The goal of this project is to prov

Victor Fuentes 137 Dec 25, 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
Contains challenges, write-ups, and deployment configurations from b01lersCTF 2023.

CTF Name A template repository for a CTF competition. This is a description of the CTF event. CTFTime Link Structure Challenges are organized by categ

null 7 Mar 29, 2023
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
A simple tool for extracting files from iOS backup archive.

iBackupExtractor A simple tool for extracting files from iOS backup archive. iOS backup files are not stored with their original directory layouts. Re

Cyandev 132 Oct 10, 2023
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
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