Files
.dotfile/script/fish-init.sh
T
2025-10-19 18:02:14 +08:00

50 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
echo 'Link fish config file'
# 备份并链接 config.fish
if [ -f "$HOME/.config/fish/config.fish" ] && [ ! -L "$HOME/.config/fish/config.fish" ]; then
mv $HOME/.config/fish/config.fish $HOME/.config/fish/config.fish.bak
fi
ln -sf $HOME/.dotfile/fish/config.fish $HOME/.config/fish/config.fish
# 确保目标目录存在
echo 'Link fish functions and completions'
mkdir -p "$HOME/.config/fish/functions"
mkdir -p "$HOME/.config/fish/completions"
# 链接 functions 目录下的所有文件
for file in $HOME/.dotfile/fish/functions/*.fish; do
if [ -f "$file" ]; then
filename=$(basename "$file")
target="$HOME/.config/fish/functions/$filename"
# 如果已存在且不是符号链接,备份
if [ -f "$target" ] && [ ! -L "$target" ]; then
mv "$target" "$target.bak"
fi
ln -sf "$file" "$target"
echo " Linked: functions/$filename"
fi
done
# 链接 completions 目录下的所有文件
for file in $HOME/.dotfile/fish/completions/*.fish; do
if [ -f "$file" ]; then
filename=$(basename "$file")
target="$HOME/.config/fish/completions/$filename"
# 如果已存在且不是符号链接,备份
if [ -f "$target" ] && [ ! -L "$target" ]; then
mv "$target" "$target.bak"
fi
ln -sf "$file" "$target"
echo " Linked: completions/$filename"
fi
done
fish -c "curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher"
fish -c "fisher install jethrokuan/z"
echo 'Set fish as default shell'
fishpath=$(which fish)
echo $fishpath | sudo tee -a /etc/shells
chsh -s $fishpath