ターミナルがダサいとモテない。NeoVimのNVIM_APPNAMEを使ってAstroNvimとNvChadを切り替える。

Photo by Markus Spiske on Unsplash
NeoVimのPreconfigured Configrationを切り替えたいと思ったことはありませんか?
NeoVimでAstroNvimとNvChadを切り替えたいと思ったことはありませんか?
NeoVimのPreconfigured Configrationってこんなにあるんです。
Awesome NeoVimみるとわかります。
GitHub - rockerBOO/awesome-neovim: Collections of awesome neovim plugins.
Collections of awesome neovim plugins. Contribute to rockerBOO/awesome-neovim development by creating an account on…
github.com
普通ありますよね?(普通はないか・・・🤣)
いや普通はないけど、たまにちょっと他のが気になることはある!😆
v0.9からNVIM_APPNAMEでXDG_CONFIG_HOME配下のDirectory名を切り替えられるのを知らなかった・・・
Starting
Neovim user documentation
neovim.io
神過ぎて、まったく別のことをやってたのに完全に脱線して組み込みました🤣
.bashrcにFunctionを組み込む
以下のような形にしました。
if command -v nvim &> /dev/null; then
# NVIM_APPNAME
if [ ! -f ${XDG_STATE_HOME}/nvim_appname ]; then
echo astronvim > ${XDG_STATE_HOME}/nvim_appname
fi
if [ -f ${XDG_STATE_HOME}/nvim_appname ]; then
declare -x NVIM_APPNAME=$(cat ${XDG_STATE_HOME}/nvim_appname)
fi
nvim_appnames=(
nvim
astronvim
nvchad
lunarvim
)
function nvim_appname() {
switch_nvim_appname=$(gum choose --select-if-one --header "current NVIM_APPNAME: ${NVIM_APPNAME}" ${nvim_appnames[@]})
if [ -n "${switch_nvim_appname}" ]; then
echo ${switch_nvim_appname} > ${XDG_STATE_HOME}/nvim_appname
export NVIM_APPNAME=$(cat ${XDG_STATE_HOME}/nvim_appname)
echo "switch NVIM_APPNAME: ${switch_nvim_appname}"
fi
echo "output NVIM_APPNAME: ${NVIM_APPNAME}"
}
function vi(){
#nvim -c "LetItSnow" "$@"
nvim "$@"
}
function vim(){
nvim "$@"
}
fiここではgumを使ってます。
GitHub - charmbracelet/gum: A tool for glamorous shell scripts 🎀
A tool for glamorous shell scripts 🎀. Contribute to charmbracelet/gum development by creating an account on GitHub.
github.com
これは去年のクリスマスの名残です😂
#nvim -c "LetItSnow" "$@"ざっくり流れを説明すると
- NVIM_APPNAMEをSetする
- gumの有無を確認して、NVIM_APPNAMEのstatefile(${XDG_STATE_HOME}/nvim_appname)とそのswitcher functionを組み込む
NVIM_APPNAMEをSetする
- ${XDG_STATE_HOME}にnvim_appnameがあるかを確認
- なければ決め打ちでastronvimで出力
- あればNVIM_APPNAMEに読み込み
# NVIM_APPNAME
if [ ! -f ${XDG_STATE_HOME}/nvim_appname ]; then
echo astronvim > ${XDG_STATE_HOME}/nvim_appname
fi
if [ -f ${XDG_STATE_HOME}/nvim_appname ]; then
declare -x NVIM_APPNAME=$(cat ${XDG_STATE_HOME}/nvim_appname)
figumの有無を確認して、NVIM_APPNAMEのstatefile(${XDG_STATE_HOME}/nvim_appname)とそのswitcher functionを組み込む
if command -v gum &> /dev/null; then
nvim_appnames=(
nvim
astronvim
nvchad
lunarvim
)
function nvim_appname() {
switch_nvim_appname=$(gum choose --select-if-one --header "current NVIM_APPNAME: ${NVIM_APPNAME}" ${nvim_appnames[@]})
if [ -n "${switch_nvim_appname}" ]; then
echo ${switch_nvim_appname} > ${XDG_STATE_HOME}/nvim_appname
export NVIM_APPNAME=$(cat ${XDG_STATE_HOME}/nvim_appname)
echo "switch NVIM_APPNAME: ${switch_nvim_appname}"
fi
echo "output NVIM_APPNAME: ${NVIM_APPNAME}"
}
fiここでgumを使ってます。
- nvim_appnamesの配列を用意(ここにNeoVimのPreconfigured Configrationの名前を列挙)
- chooseで select-if-one optionでswitch_nvim_appnameに変数として読み込ませる
- ${XDG_STATE_HOME}/nvim_appnameを上書き
- 改めてNVIM_APPNAMEをexport
Function: nvim_appname
nvim_appname
選択できて、これで実際に切り替わります。
これで
NvChadでも
CyberVimでも
LunarVimでも
なんでもあり🤣
ターミナル環境について他の記事も書いているので、よろしければこちらもご覧ください!
『ターミナルがダサいとモテない』シリーズ一覧
転載:ターミナルがダサいとモテない。NeoVimのNVIM_APPNAMEを使ってAstroNvimとNvChadを切り替える。
この記事は Medium(@yusuke_h) からの転載です。
