93 lines
2.7 KiB
Bash
93 lines
2.7 KiB
Bash
#!/bin/sh
|
|
|
|
# Copyright (c) 2020-2021 shadmansaleh
|
|
# MIT license, see LICENSE for more details.
|
|
|
|
USAGE="Usage nvim_isolated_conf.sh [OPTIONS] Directory
|
|
A tool to easily test isolated neovim config
|
|
|
|
Options:
|
|
-c Create a mimimal config tree at Directory
|
|
-e Edit init.vim of config in Directory
|
|
-h Show this message
|
|
-l Load neovim with config from Directory
|
|
"
|
|
|
|
INIT_TEMPLATE="call plug#begin(\"%s/.local/share/nvim/plugged\")
|
|
\" Your plugins go here like
|
|
Plug 'nvim-lualine/lualine.nvim'
|
|
|
|
|
|
call plug#end()
|
|
|
|
\" Your Viml part of config goes here
|
|
\" colorscheme onedark
|
|
|
|
|
|
lua << END
|
|
-- Your lua part of config goes here
|
|
require'lualine'.setup {
|
|
|
|
}
|
|
|
|
|
|
END
|
|
|
|
\" Instructions:
|
|
\" -------------------------------------------------------------
|
|
\" Load this config with nvim_isolated_conf.sh -l %s
|
|
\" Remember to run :PlugInstall after changing plugin section
|
|
\" Also delete the comments before putting this file on issue
|
|
\" That will reduce noise
|
|
\" You can delete %s once you're done"
|
|
|
|
while getopts "c:e:hl:" arg; do
|
|
case $arg in
|
|
h) Help=true;;
|
|
c) CreateDirInput=$OPTARG;;
|
|
l) LoadDirInput=$OPTARG;;
|
|
e) EditDirInput=$OPTARG;;
|
|
esac
|
|
done
|
|
shift $((OPTIND -1))
|
|
|
|
|
|
if ! [ -z $LoadDirInput ];then
|
|
LoadDir=$(realpath $LoadDirInput)
|
|
if [ -d $LoadDir ];then
|
|
export NVIM_CONFIG_HOME=$LoadDir
|
|
export XDG_CONFIG_HOME=$NVIM_CONFIG_HOME/.config
|
|
export XDG_DATA_HOME=$NVIM_CONFIG_HOME/.local/share
|
|
export XDG_CACHE_HOME=$NVIM_CONFIG_HOME/.cache
|
|
export XDG_STATE_HOME=$NVIM_CONFIG_HOME/.local/state
|
|
nvim $@
|
|
else
|
|
echo "Sorry can't load neovim config. ${LoadDir} doesn't exist"
|
|
fi
|
|
elif ! [ -z $CreateDirInput ];then
|
|
CreateDir=$(realpath $CreateDirInput)
|
|
echo "Creating directories"
|
|
mkdir -p ${CreateDir}/.local/share/nvim/site/autoload
|
|
mkdir -p ${CreateDir}/.config/nvim
|
|
echo "Installing VimPlug"
|
|
wget -q "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" -O ${CreateDir}/.local/share/nvim/site/autoload/plug.vim
|
|
echo "Writing minimal init"
|
|
printf "${INIT_TEMPLATE}" ${CreateDir} ${CreateDir} ${CreateDir} > ${CreateDir}/.config/nvim/init.vim
|
|
echo ""
|
|
echo "You can edit the ${CreateDirInput}/.config/nvim/init.vim to put your config"
|
|
echo "You can load this config with nvim_isolated_conf.sh -l ${CreateDirInput}"
|
|
echo "You can open config (init.vim) to edit with nvim_isolated_conf.sh -e ${CreateDirInput}"
|
|
elif ! [ -z $EditDirInput ];then
|
|
if [ -d $EditDirInput ];then
|
|
if ! [ -z $EDITOR ];then
|
|
$EDITOR $EditDirInput/.config/nvim/init.vim
|
|
else
|
|
nvim $EditDirInput/.config/nvim/init.vim
|
|
fi
|
|
else
|
|
echo "Sorry can't load neovim config. ${LoadDir} doesn't exist"
|
|
fi
|
|
else
|
|
printf "$USAGE"
|
|
fi
|