Skip to content
/ nvims Public

Safely experiment with multiple Neovim configurations.

License

Notifications You must be signed in to change notification settings

Traap/nvims

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nvims

Safely experiment with multiple Neovim configurations.

Nvims screenshot

Nvim Operational modes

nvims deletes, installs, resets or sets a default nvims configuration.

nvims does not modify the followin Neovim directories.

  • ~/.config/nvim
  • ~/.cache/nvim
  • ~/.local/share/nvim
  • ~/.local/state/nvim

Requirements

Install nvims

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Traap/nvims/master/install.sh)"

Uninstall nvims

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Traap/nvims/master/uninstall.sh)"

OSX additional instructions

See issue #8 for Bash and OSX discussion.

brew install bash
echo /usr/local/bin/bash | sudo tee -a /etc/shells
sed -i '1 s/^.*$/\#\!\/usr\/local\/bin\/env bash/' /usr/local/bin/nvims

Install a Neovim configuration.

Your selection is written to ~/.config/nvims/nvim_appnames.

nvims

Remove a Neovim configuration.

Used to an existing distribution when it exists. The distribution also removed from ~/.config/nvims/nvim_appnames.

nvims -d

Reset a Neovim configuration.

Used to reset an existing distribution when it exists. The distribution is not cloned or pulled, but it is bootstrapped when Neovim is started.

nvims -r

Set Neovim default configuration.

default is one of the Neovim distribution nvims provides. Normally, this means nvims will launch Neovim similar to using "nvim -u NORC". This changes when nvims -s is used. Firstly, $defaultNeovimDistro is written to with your desired default. Secondly, when you run nvims and select "default", nvims will set $choice to $defaultNeovimDistro.

Your selection is written to ~/.config/nvims/nvim_appnames and to ~/.config/nvims/nvim_default_app.

nvims -s

Nvims usage

nvims -h
Usage: nvims [] [-d] [-r] [-s] [-h]
 [ ] - Display nvim selection list.
 [d] - Delete selected nvimapp installation.
 [r] - Reset selected nvimapp installation.
 [s] - Set selected nvimapp as nvims default.
 [h] - Display this message.

Keybindings

Keybind Action
ctrl-c Cancel.
ctrl-p Previous selection
ctrl-n Next selection
enter Selecte highlighted item

Neovim configurations supported.

# alias       | sn  | URL                     | branch
readonly neovim_distros=(
  "default    |false| none                    | none"
  "astro      |false| AstroNvim/template      | default"
  "asyncedd   |false| asyncedd/dots.nvim      | default"
  "barebones  |true | Traap/barebones         | default"
  "barelazy   |true | Traap/barebones         | lazy"
  "baretmux   |true | Traap/barebones         | tmux"
  "cam        |false| ChristianChiarulli/nvim | default"
  "CyberNvim  |false| pgosar/CyberNvim        | default"
  "exos       |false| exosyphon/nvim          | none"
  "kickstart  |false| nvim-lua/kickstart.nvim | default"
  "launch     |false| LunarVim/Launch.nvim    | default"
  "LazyVim    |true | LazyVim/starter         | default"
  "lervag     |false| lervag/dotnvim          | default"
  "NormalNvim |false| NormalNvim/NormalNvim   | default"
  "nvchad     |false| NvChad/starter          | default"
  "nvconf     |false| TechnicalDC/NvConf      | default"
  "OVIwrite   |false| MiragianCycle/OVIWrite  | default"
  "prime      |false| Traap/init.lua          | default"
  "pwnvim     |false| pwnwriter/pwnvim        | default"
  "traap      |true | Traap/nvim              | default"
  "starter    |false| lazyvim/starter         | default"
  "vapour     |false| Traap/VapourNvim        | default"
  "void       |false| nvoid-lua/nvoid         | default"
  "whiskey    |true | Traap/nvim              | 706377a"
  "xray       |true | Traap/nvim              | v0.9.5-lazyvim"
  "zero       |true | Traap/lazy.zero         | default"
  "zulu       |true | Traap/nvim              | v0.6.8-packer"
)

Note: see neovim_distros file for latest configuration packages supported and column name discussion.

Suggested bash login change

if [[   -f "$HOME/.config/nvims/nvim_appnames" ]]; then
	source "$HOME/.config/nvims/nvim_appnames"
fi

So, you want to add your Neovim configuration so others can use it?

  1. Make a pull-request that updates neovim_distro with your GitHub URL and Branch.
  2. Your Neovim configuration MUST bootstrap itself.
  3. I'll test it on either Arch or Ubuntu.
  4. With 1, 2, and 3 passing. I'll merge your pull-request.

Update notification

  1. nvims appends to ~/.config/nvims/nvim_appnames
  2. nvims remove entries from ~/.config/nvims/nvim_appnames when nvims -d option is used.
  3. nvims write ~/.config/nvims/nvim_default_app when nvims -s option is used.

About

Safely experiment with multiple Neovim configurations.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages