zsh alias 快速持久化

115 天前
 FoolgryWang

平时用的是 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'

https://github.com/foolgry/zsh_alias

1566 次点击
所在节点    分享创造
12 条回复
ShineyWang
115 天前
交互式命令行工具我用的 navi
https://github.com/denisidoro/navi

这也可以持久化命令
FoolgryWang
115 天前
@ShineyWang #1 大佬!!!你这个是很完整的工具,我这个就是简单的脚本,自己玩玩
FoolgryWang
115 天前
@ShineyWang #1 很久之前就 star 了
YzSama
115 天前
我倒是想要个输入 alias ,提示原来的指令提示功能。
类似 warp 终端一样的显示
vvhy
115 天前
不想手动编辑 zshrc ,能把这个 function 自动 save 一下吗🤔
FoolgryWang
115 天前
@vvhy #5 也不是不行,这两天有空了整一下,弄好了回复你
FoolgryWang
115 天前
@YzSama #4 提示这块没搞过,简单看的话 alias |grep xxx 就可以
molezznet
115 天前
原来 fish 还有 funcsave 这个功能, 学习下学到了
FoolgryWang
113 天前
@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)"
vvhy
113 天前
@FoolgryWang #9 脚本里多了一个\n
FoolgryWang
112 天前
@vvhy #10 那是加一个换行,不影响使用,不想要的话也可以去掉,我在 mac 测试没问题,其他环境还没测试
vvhy
112 天前
@FoolgryWang #11 在 arch 上会多"\n"两个字符,有点奇怪,另一台设备却没问题哈哈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1046816

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX