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
|