平时用的是 zsh ,但是 fish 中有个 funcsave 功能很好用,能够把自己在命令行中临时定义的 alias 持久化,于是写了个简单的 shell 函数,实现这个功能
将以下代码添加到你的 ~/.zshrc
文件中:
# Function to save a specific alias
function alias_save {
# Check if the alias exists
if alias "$1" > /dev/null 2>&1; then
# Extract the alias definition and ensure the correct format
local alias_definition=$(alias "$1" | sed "s/^alias //")
# Append the alias to the ~/.zsh_aliases file with alias prefix
echo "alias $alias_definition" >> ~/.zsh_aliases
echo "Alias $1 saved to ~/.zsh_aliases"
else
echo "Alias $1 does not exist"
fi
}
# Function to load aliases
function load_aliases {
if [ -f ~/.zsh_aliases ]; then
source ~/.zsh_aliases
echo "Aliases loaded from ~/.zsh_aliases"
else
echo "No alias file found."
fi
}
# Automatically load aliases on shell startup
load_aliases
重新加载 Zsh 配置文件,自动加载已保存的 alias:
source ~/.zshrc
使用
alias b='git status'
alias_save b # 持久化
b # 运行 'git status'
1
ShineyWang 155 天前
|
2
FoolgryWang OP @ShineyWang #1 大佬!!!你这个是很完整的工具,我这个就是简单的脚本,自己玩玩
|
3
FoolgryWang OP @ShineyWang #1 很久之前就 star 了
|
4
YzSama 155 天前
我倒是想要个输入 alias ,提示原来的指令提示功能。
类似 warp 终端一样的显示 |
5
vvhy 155 天前
不想手动编辑 zshrc ,能把这个 function 自动 save 一下吗🤔
|
6
FoolgryWang OP @vvhy #5 也不是不行,这两天有空了整一下,弄好了回复你
|
7
FoolgryWang OP @YzSama #4 提示这块没搞过,简单看的话 alias |grep xxx 就可以
|
8
molezznet 155 天前
原来 fish 还有 funcsave 这个功能, 学习下学到了
|
9
FoolgryWang OP @vvhy #5 搞好了,安装脚本在这里 https://github.com/foolgry/zsh_alias/blob/main/install.sh
可以使用 wget 或者 curl 一条命令安装,任意一个都可以 sh -c "$(curl -fsSL https://raw.githubusercontent.com/foolgry/zsh_alias/main/install.sh)" sh -c "$(wget -qO- https://raw.githubusercontent.com/foolgry/zsh_alias/main/install.sh)" |
10
vvhy 153 天前
@FoolgryWang #9 脚本里多了一个\n
|
11
FoolgryWang OP @vvhy #10 那是加一个换行,不影响使用,不想要的话也可以去掉,我在 mac 测试没问题,其他环境还没测试
|
12
vvhy 152 天前
@FoolgryWang #11 在 arch 上会多"\n"两个字符,有点奇怪,另一台设备却没问题哈哈
|