WWW.YOUINFO.SITE
标签聚合 zsh

/tag/zsh

LinuxDo 最新话题 · 2026-05-12 13:42:46+08:00 · tech

背景 由于以下原因,不是很想安装 zsh: zsh 不如 bash 轻量 远程主机一般自带 bash,zsh 需要额外安装 zsh 配置比较复杂,需要额外的插件 年龄大了,喜欢做减法,折腾不动 叠甲 当然我之前对 zsh 就不是深度用户,只是喜欢 git 插件、能显示时间和 ret code,还有历史命令匹配。 效果 显示时间 显示 git branch(如果在 git 仓库) 显示上次命令的 ret code(如果非 0) 至于历史命令暂时还使用 ctrl + r 替代: 用法 其实就是把这段加到 ~/.bashrc 里即可: GREEN="\[\e[32;1m\]" BLUE="\[\e[36;1m\]" WHITE="\[\e[37;1m\]" BLACK="\[\e[30;1m\]" RED="\[\e[31;1m\]" YELLOW="\[\e[33;1m\]" PURPLE="\[\e[35;1m\]" DARK_GREEN="\[\e[36;1m\]" CLEAR="\[\e[0m\]" _JOB_="\j" _FILECOUNT_="Files: \$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g')" _HISTORY_="\!" _DATE_="\$(/bin/date)" _CLOCK_="\t" _SIZE_="Size: \$(/bin/ls -lah | /usr/bin/head -n 1 | /usr/bin/cut -d ' ' -f 2)" _PATH_="\$(pwd)" _GIT_="\$(git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/')" _EXIT_CODE_="\$(_VALU_="\$?" ; if [ \$_VALU_ == 0 ]; then echo ''; else echo \"\$_VALU_ \"; fi)" export PS1="$RED$_EXIT_CODE_$YELLOW\u$BLUE@$YELLOW\h $GREEN$_PATH_ $BLUE$_GIT_ $WHITE$_CLOCK_ \n$CLEAR\$ " 其他 如果有大佬可以丰富一下 bash 提示符的功能,欢迎补充互相学习~ 11 个帖子 - 8 位参与者 阅读完整话题

linux.do · 2026-04-29 15:17:32+08:00 · tech

原理是在 .zshrc 里 编写脚本检测当前的终端类型。 如果不是 ghostty 的话,直接呼起ghostty。 脚本如下(建议贴在最顶端) # Redirect Finder-opened Apple Terminal sessions into Ghostty. if [[ -o interactive && "${TERM_PROGRAM:-}" == "Apple_Terminal" && -z "${GHOSTTY_TERMINAL_TAKEOVER_DONE:-}" ]]; then export GHOSTTY_TERMINAL_TAKEOVER_DONE=1 __ghostty_app="/Applications/Ghostty.app" __ghostty_lock_file="${TMPDIR:-/tmp}/ghostty-terminal-takeover-${UID}.lock" : >> "$__ghostty_lock_file" 2>/dev/null if ! zmodload zsh/system 2>/dev/null || ! zsystem flock -t 0 -f __ghostty_lock_fd "$__ghostty_lock_file" 2>/dev/null; then exit 0 fi if [[ -d "$__ghostty_app" ]]; then if /usr/bin/osascript - "$PWD" <<'APPLESCRIPT' on run argv set targetDir to item 1 of argv tell application "/Applications/Ghostty.app" set cfg to new surface configuration set initial working directory of cfg to targetDir if (count of windows) is 0 then set win to new window with configuration cfg set targetTab to selected tab of win else set win to front window set targetTab to new tab in win with configuration cfg select tab targetTab end if activate window win focus (focused terminal of targetTab) end tell end run APPLESCRIPT then { sleep 1.2 /usr/bin/defaults write com.apple.Terminal NSQuitAlwaysKeepsWindows -bool false >/dev/null 2>&1 /usr/bin/defaults write com.apple.Terminal ApplePersistenceIgnoreState -bool true >/dev/null 2>&1 /usr/bin/osascript >/dev/null 2>&1 <<'APPLESCRIPT' tell application "Terminal" close every window saving no end tell APPLESCRIPT sleep 0.2 /usr/bin/pkill -x Terminal >/dev/null 2>&1 } &! exit 0 fi fi unset GHOSTTY_TERMINAL_TAKEOVER_DONE unset __ghostty_app unset __ghostty_lock_file unset __ghostty_lock_fd fi 注意 Apple Terminal会在被kill后重新启动时恢复session,如果出现了使用此指令打开了多个 ghostly 窗口的问题,可以使用如下命令行修复: defaults write com.apple.Terminal NSQuitAlwaysKeepsWindows -bool false defaults write com.apple.Terminal ApplePersistenceIgnoreState -bool true 3 个帖子 - 3 位参与者 阅读完整话题

v2ex.com · 2026-04-28 19:37:33+08:00 · tech

痛点 作为一个代码小白 + 重度懒癌患者,每次要切换中转 API 都让我崩溃: 打开终端 → 找教程 → vim ~/.zshrc → 翻半天找到那两行 → 小心翼翼改 URL 和 Key → 保存 → source ~/.zshrc → 祈祷没改错…… 就这么个 1 分钟的事,我每次都要花 5 分钟。 更要命的是——我不会只买一家中转。有的中转厂确实不太行,挂了、慢了、额度用完了,就得换另一家。手头常备 3~5 个不同平台的 API ,来回切换简直折磨。 所以,我 Vibe Coding 了一个切换工具 与其每次受罪,不如一劳永逸。 一句话介绍: 图形界面管理多个中转配置,鼠标点一下就写入 ~/.zshrc ,终端自动生效。 它能干什么 🔀 双平台 :同时管理 Claude Code 和 OpenAI Codex CLI 的中转配置,颜色区分一目了然(靛蓝 = Claude ,翠绿 = Codex ) ⚡ 一键切换 :预存 N 个中转节点,选中 → 点「同步」→ 自动写入 ~/.zshrc ,两个平台的环境变量互不干扰 🔄 终端热更新 :点「立即生效」,自动帮你在打开的终端里跑 source ~/.zshrc ,都不用自己敲 💾 备份迁移 :JSON 一键导入导出,换电脑无缝迁移;每次切换前自动保存快照,手残也不怕 适合谁用 🙋 和我一样懒、不想碰配置文件的人 🙋 手头有多个中转 API 需要频繁切换的人 🙋 中转平台主,可以分发给你的用户,降低配置门槛 怎么用 要求:装了 Node.js git clone https://github.com/zxs-ai/C-code-switch.git cd C-code-switch 然后双击目录里的 启动.command 就行了。浏览器自动打开,添加你的中转配置,选中,点同步,搞定。 也支持 Electron 打包成独立 App: npm install && npm start 项目地址 GitHub: https://github.com/zxs-ai/C-code-switch MIT 开源,随便用。有问题欢迎提 Issue 。

v2ex.com · 2026-04-28 19:37:33+08:00 · tech

痛点 作为一个代码小白 + 重度懒癌患者,每次要切换中转 API 都让我崩溃: 打开终端 → 找教程 → vim ~/.zshrc → 翻半天找到那两行 → 小心翼翼改 URL 和 Key → 保存 → source ~/.zshrc → 祈祷没改错…… 就这么个 1 分钟的事,我每次都要花 5 分钟。 更要命的是——我不会只买一家中转。有的中转厂确实不太行,挂了、慢了、额度用完了,就得换另一家。手头常备 3~5 个不同平台的 API ,来回切换简直折磨。 所以,我 Vibe Coding 了一个切换工具 与其每次受罪,不如一劳永逸。 一句话介绍: 图形界面管理多个中转配置,鼠标点一下就写入 ~/.zshrc ,终端自动生效。 它能干什么 🔀 双平台 :同时管理 Claude Code 和 OpenAI Codex CLI 的中转配置,颜色区分一目了然(靛蓝 = Claude ,翠绿 = Codex ) ⚡ 一键切换 :预存 N 个中转节点,选中 → 点「同步」→ 自动写入 ~/.zshrc ,两个平台的环境变量互不干扰 🔄 终端热更新 :点「立即生效」,自动帮你在打开的终端里跑 source ~/.zshrc ,都不用自己敲 💾 备份迁移 :JSON 一键导入导出,换电脑无缝迁移;每次切换前自动保存快照,手残也不怕 适合谁用 🙋 和我一样懒、不想碰配置文件的人 🙋 手头有多个中转 API 需要频繁切换的人 🙋 中转平台主,可以分发给你的用户,降低配置门槛 怎么用 要求:装了 Node.js git clone https://github.com/zxs-ai/C-code-switch.git cd C-code-switch 然后双击目录里的 启动.command 就行了。浏览器自动打开,添加你的中转配置,选中,点同步,搞定。 也支持 Electron 打包成独立 App: npm install && npm start 项目地址 GitHub: https://github.com/zxs-ai/C-code-switch MIT 开源,随便用。有问题欢迎提 Issue 。

v2ex.com · 2026-04-28 19:27:31+08:00 · tech

痛点 作为一个代码小白 + 重度懒癌患者,每次要切换中转 API 都让我崩溃: 打开终端 → 找教程 → vim ~/.zshrc → 翻半天找到那两行 → 小心翼翼改 URL 和 Key → 保存 → source ~/.zshrc → 祈祷没改错…… 就这么个 1 分钟的事,我每次都要花 5 分钟。 更要命的是——我不会只买一家中转。有的中转厂确实不太行,挂了、慢了、额度用完了,就得换另一家。手头常备 3~5 个不同平台的 API ,来回切换简直折磨。 所以,我 Vibe Coding 了一个切换工具 与其每次受罪,不如一劳永逸。 一句话介绍: 图形界面管理多个中转配置,鼠标点一下就写入 ~/.zshrc ,终端自动生效。 它能干什么 🔀 双平台 :同时管理 Claude Code 和 OpenAI Codex CLI 的中转配置,颜色区分一目了然(靛蓝 = Claude ,翠绿 = Codex ) ⚡ 一键切换 :预存 N 个中转节点,选中 → 点「同步」→ 自动写入 ~/.zshrc ,两个平台的环境变量互不干扰 🔄 终端热更新 :点「立即生效」,自动帮你在打开的终端里跑 source ~/.zshrc ,都不用自己敲 💾 备份迁移 :JSON 一键导入导出,换电脑无缝迁移;每次切换前自动保存快照,手残也不怕 适合谁用 🙋 和我一样懒、不想碰配置文件的人 🙋 手头有多个中转 API 需要频繁切换的人 🙋 中转平台主,可以分发给你的用户,降低配置门槛 怎么用 要求:装了 Node.js git clone https://github.com/zxs-ai/C-code-switch.git cd C-code-switch 然后双击目录里的 启动.command 就行了。浏览器自动打开,添加你的中转配置,选中,点同步,搞定。 也支持 Electron 打包成独立 App: npm install && npm start 项目地址 GitHub: https://github.com/zxs-ai/C-code-switch MIT 开源,随便用。有问题欢迎提 Issue 。

linux.do · 2026-04-27 11:54:46+08:00 · tech

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容: 我的帖子已经打上 开源推广 标签:是 我的开源项目完整开源,无未开源部分:是 我的开源项目已链接认可 LINUX DO 社区:是 我帖子内的项目介绍,AI 生成、润色内容部分已截图发出:是 以上选择我承诺是永久有效的,接受社区和佬友监督:是 以下为项目介绍正文内容,AI 生成、润色内容已使用截图方式发出 codex-copy 是一个 zsh 小插件,可以从本地 Codex CLI session 里取出 user / assistant 对话,转成 Markdown,然后复制到剪贴板,以解决本人在终端选中复制时,一耗时、二重排版耗力、三让 codex 转成文件耗心思的痛点。 仓库: github.com GitHub - texiwustion/codex-copy: Copy Codex CLI conversations from zsh Copy Codex CLI conversations from zsh 安装 在仓库中下载 codex-copy.plugin.zsh 到本地后直接 source: source /path/to/codex-copy.plugin.zsh 或者放进本地插件目录: mkdir -p ~/.zsh/plugins/codex-copy cp codex-copy.plugin.zsh ~/.zsh/plugins/codex-copy/ echo 'source ~/.zsh/plugins/codex-copy/codex-copy.plugin.zsh' >> ~/.zshrc 用 zinit: zinit light ~/.zsh/plugins/codex-copy 用法 复制最近一次 Codex 会话(默认行为): codex-copy # 相当于 codex-copy --last 指定最近第 2 个 session: codex-copy 2 指定 session id 或前缀: codex-copy --session 019dccac 列出 session: codex-copy --list 只复制 user: codex-copy --user 只复制 assistant: codex-copy --assistant 复制第 3 轮: codex-copy --turn 3 复制最后一轮: codex-copy --turn -1 复制第 2 到第 5 轮: codex-copy --from 2 --to 5 输出到 stdout,方便管道或测试: CODEX_COPY_CLIPBOARD=stdout codex-copy --last 说明 待开发 1 个帖子 - 1 位参与者 阅读完整话题

linux.do · 2026-04-19 22:06:41+08:00 · tech

最近在配置macos的shell开发环境,尽力对标 GitHub - PowerShell/PowerShell: PowerShell for every system! · GitHub macos shell壳用的是 Ghostty,shell用的是zsh,大部分功能都对标了,但是有一个输入命令,自动下拉所有备选命令这个在macos没法实现,需要按ctrl+r弹出历史命令 比如 我输入 cd xxx,在powershell会自动下拉所有包括xxx,但是在macos需要按ctrl+r才能下拉历史命令,感觉挺别扭的,照理说这功能是个很合理的诉求 23 个帖子 - 14 位参与者 阅读完整话题