50 lines
1.7 KiB
Bash
Executable File
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
|