/.zshrc Secret
Created
March 27, 2023 04:59
-
Star
(176)
You must be signed in to star a gist -
Fork
(26)
You must be signed in to fork a gist
-
-
Save elijahmanor/b279553c0132bfad7eae23e34ceb593b to your computer and use it in GitHub Desktop.
Neovim Switcher
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
alias nvim-lazy="NVIM_APPNAME=LazyVim nvim" | |
alias nvim-kick="NVIM_APPNAME=kickstart nvim" | |
alias nvim-chad="NVIM_APPNAME=NvChad nvim" | |
alias nvim-astro="NVIM_APPNAME=AstroNvim nvim" | |
function nvims() { | |
items=("default" "kickstart" "LazyVim" "NvChad" "AstroNvim") | |
config=$(printf "%s\n" "${items[@]}" | fzf --prompt=" Neovim Config " --height=~50% --layout=reverse --border --exit-0) | |
if [[ -z $config ]]; then | |
echo "Nothing selected" | |
return 0 | |
elif [[ $config == "default" ]]; then | |
config="" | |
fi | |
NVIM_APPNAME=$config nvim $@ | |
} | |
bindkey -s ^a "nvims\n" |
I just set the NVIM_APPNAME env variable to the directory name as per the commit. And so I just use the nvims
function to set the desired config as environment variable. After this I can just use the regular nvim
command to start the neovim in my desired config:
-- .zshrc
export DEFAULT_NVIM=<Your default conf directory within .config>
export NVIM_APPNAME=${DEFAULT_NVIM}
# Function to dynamically find and select Neovim configurations
function nvims() {
local config_dirs
config_dirs=$(find -L "${XDG_CONFIG_HOME:-$HOME/.config}" -mindepth 2 -maxdepth 2 -name init.lua -o -name init.vim | awk -F/ '{print $(NF-1)}')
local config
config=$(printf "%s\n" "default" $config_dirs | fzf --prompt=" Neovim Config " --height=~50% --layout=reverse --border --exit-0)
if [[ -z $config ]]; then
echo "Nothing selected"
return 0
elif [[ $config == "default" ]]; then
config=${DEFAULT_NVIM:-""}
fi
export NVIM_APPNAME=$config
}
You can set the default to your most frequently used
bind \ca 'nvims\n'
Pressingctrl+A
shows:
❯ nvims
: command not found
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
You should consider changing this to pass
$argv
to nvim in each of those functions so you can pass arguments. Otherwise you can't even use those aliases to open files from the CLI but have to use a picker from within neovim.