当前位置: 首页 > article >正文

Zsh Alias Preview 预览 zsh 中的命令缩写

原文链接https://www.castamerego.com/blog/zshAliasPreviewalias 用多了之后就有一个问题敲gco的时候记得它是git checkout但gcb是什么来着dcu又是什么通常的做法是which gcb看一眼再回来重敲一遍挺打断思路的。笔者写了个 Zsh 插件在敲命令的时候直接把 alias 展开后的内容显示在 message area免去这一步缘起笔者~/.zshrc里 alias 越攒越多 —— eza 的几个变体、git 的若干缩写、docker compose 一坨。短 alias 敲起来是省事但回头看历史记录或者教别人用的时候经常要which xxx一下才想起来到底展开成什么之前也想过把which绑个快捷键但本质上还是要打断输入流。笔者想要的是 IDE 里那种 inline hint —— 边敲边看眼角余光扫一眼就够了。Zsh 的 message area提示符下面那一行正好闲着于是就有了这个插件功能主要功能有实时预览 alias 展开后的命令显示在 message area可以配置只对感兴趣的命令展示避免被ll之类的低价值预览刷屏长命令自动截断不会撑爆下面那一行仅在内容变化时重绘避免输入过程中的闪烁安装如果还没装过 Zsh 和 Oh My Zsh可以先看 配置 Linux 终端 (zsh) 把基础环境搭好目前是 Oh My Zsh manual install。先把仓库 clone 到 custom plugins 目录git clone https://github.com/Casta-mere/zsh-alias-preview \ ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-alias-preview然后在~/.zshrc的plugins(...)里加上zsh-alias-preview最后 source 一下source ~/.zshrc配置默认只对git和docker这两个命令的 alias 显示预览 —— 笔者的高频场景就这俩其他的不太常需要看展开。想加别的命令在~/.zshrc里做如下修改即可~/.zshrctypeset -ga ALIAS_PREVIEW_COMMANDS(git docker ls kubectl)规则很简单alias 展开后第一个 token 在数组里就显示预览不在就什么都不做。例如gcogit checkout会显示llls -alF默认不会加ls进去之后就会实现思路整个插件没有引入任何依赖全靠 Zsh 自身的 ZLE (Zsh Line Editor) 机制。核心就三件事挂钩重绘事件。Zsh 提供了add-zle-hook-widget可以在 ZLE 的几个生命周期点line-init/line-pre-redraw/line-finish等注入自己的 widget。这里挂在line-pre-redraw上 —— 每次行内容变化、重绘前都会触发add-zle-hook-widget line-pre-redraw _preview_alias_message解析当前命令行的第一个 token。ZLE 把当前输入暴露在$BUFFER变量里。去掉前导空格、取第一个空格之前的部分就是用户正在敲的命令。然后用${aliases[$first_word]}查 Zsh 内置的aliases关联数组所有 alias 都在这里有就拿到展开字符串local trimmed${BUFFER#${BUFFER%%[! ]*}} local first_word${trimmed%% *} local expanded${aliases[$first_word]}写到 message area。zle -M text就是往提示符下面那行写消息的标准 API输入下一个字符就会自然刷新。再配一个_alias_preview_last缓存避免内容没变时的重复重绘 —— 这就是「不闪烁」的全部秘密zle -M ↳ : ${expanded}剩下两个细节过滤命令用${ALIAS_PREVIEW_COMMANDS[(Ie)$exp_cmd]}——(Ie)是 Zsh 数组的精确匹配下标语法返回索引存在则非零避开补全菜单通过判断$LASTWIDGET是否包含complete等关键字否则会和_complete冲突把补全列表覆盖掉后记插件还很新已知有几个地方没处理好记录一下嵌套 alias 不展开。如果gcogit checkout、gcmgco main敲gcm时只会看到gco main这一层不会再继续把gco展开成git checkoutfunction 形式的 alias 看不到。Zsh 里很多人会用function name() { ... }替代 alias这种东西不在${aliases[]}里本插件不处理全局 aliasalias -g没考虑。全局 alias 可以出现在命令的任意位置按「第一个 token」匹配的策略会漏掉截断长度暂时写死 80。之后想抽成可配置项笔者自己用够了先这样。有边界情况欢迎开 issue 或者 PRGithub zsh-alias-previewhttps://github.com/Casta-mere/zsh-alias-preview

相关文章:

Zsh Alias Preview 预览 zsh 中的命令缩写

原文链接https://www.castamerego.com/blog/zshAliasPreview alias 用多了之后就有一个问题:敲 gco 的时候记得它是 git checkout,但 gcb 是什么来着?dcu 又是什么?通常的做法是 which gcb 看一眼再回来重敲一遍,挺打…...

real-anime-z开源可部署优势:离线环境稳定运行保障项目交付周期

real-anime-z开源可部署优势:离线环境稳定运行保障项目交付周期 1. 项目概述 real-anime-z是一款基于Z-Image基础镜像构建的LoRA模型,专注于生成高质量的真实动画风格图片。该项目采用Xinference框架进行模型服务部署,并通过Gradio提供用户…...

Leather Dress Collection效果展示:12款LoRA在肤色适配、光影反射、皮革光泽一致性表现

Leather Dress Collection效果展示:12款LoRA在肤色适配、光影反射、皮革光泽一致性表现 1. 项目概述 Leather Dress Collection 是一个基于Stable Diffusion 1.5的LoRA模型集合,专注于生成各种皮革服装风格的图像。这套模型由Stable Yogi开发&#xff…...

QNX远程调试与CoreDump分析全流程

QNX系统下的远程调试及核心转储分析流程可归纳为目标端服务配置、主机端环境准备、符号文件加载、调试会话建立四个核心阶段,其技术栈基于GDB的Client-Server架构实现跨平台调试能力 。 一、调试环境架构与工具链选择 QNX的调试体系采用分离式架构:目标…...

光电对抗:电磁波—物质相互作用研究的重点难点和的前沿进展

一、理论盲点与认知局限电磁波与物质相互作用的一些深层机理,特别是微观尺度下的复杂过程,我们的认识还存在局限:1. 微观机理的精细描绘:虽然麦克斯韦方程组和量子理论提供了基础框架,但精确描述复杂材料体系中多种损耗…...

Qwen3.5-9B-GGUF实战案例:基于llama-cpp-python的18万字长文本处理方案

Qwen3.5-9B-GGUF实战案例:基于llama-cpp-python的18万字长文本处理方案 1. 项目介绍 Qwen3.5-9B-GGUF是阿里云开源的Qwen3.5-9B模型经过GGUF格式量化后的版本,特别适合处理超长文本任务。这个90亿参数的稠密模型采用了创新的Gated Delta Networks架构和…...

BUUCTF [ACTF2020 新生赛]BackupFile1

1.了解主题题目标题是BackupFile(备份文件),由此可以得知,这道题与备份文件有关。首我尝试使用dirsearch对靶机进行了各种压缩包格式(zip rar jar 7z tar)的文件扫描,没有扫描出来东西&#xf…...

为什么要学习AI大模型?掌握AI大模型:抢占未来职场制高点,成为高薪抢手人才!

本文阐述了企业对AI大模型需求的增长及其带来的商业价值,如降本增效、产品创新等。同时,文章强调了学习AI大模型对个人职业发展的益处,包括薪资提升、效率提高、拓宽职业道路等。文章还展望了AI大模型广阔的职业前景,并提供学习资…...

1998-2026年EarthScope波形数据集

摘要:本数据集为通过 EarthScope NSF SAGE Facility Web Services 获取的 IU.ANMO 台站连续地震波形数据。波形数据由 fdsnws-dataselect 服务返回并保存为 miniSEED 文件,台站与仪器响应元数据由 fdsnws-station 服务返回并保存为 StationXML 及文本清单…...

nli-MiniLM2-L6-H768代码实例:curl/API/Python SDK三种调用方式完整示例

nli-MiniLM2-L6-H768代码实例:curl/API/Python SDK三种调用方式完整示例 1. 服务概述 nli-MiniLM2-L6-H768是一个基于自然语言推理的句子关系判断服务,采用cross-encoder/nli-MiniLM2-L6-H768模型(630MB)。该服务能够分析两个句…...

2026年GEO排名优化服务商实力测评,看完不踩坑

伴随生成式AI搜索的普遍推广,GEO(生成引擎优化)已然成为企业数字营销的全新战场,它与传统SEO有所不同,GEO着重于使品牌内容在GPT,,等多种AI模型的回应里得到优先推荐,面对市场上不断…...

《JVS-APS全景解读:算法驱动+低代码融合的智能排产系统》

引言:制造业排产的“三座大山”制造业生产管理最常被吐槽的三个痛点:紧急插单乱套:销售一个电话进来,计划员就要花半天时间重排所有工序,越改越乱资源冲突频发:设备、模具、人员同时被多个订单争抢&#xf…...

Windows组策略不生效?别慌!手把手教你用注册表精准定位与修复(附常用键值对照表)

Windows组策略疑难排查实战指南:从注册表到问题解决 在Windows系统管理中,组策略是管理员最强大的工具之一,但也是最容易让人头疼的功能。当精心配置的策略未能按预期生效时,很多管理员会陷入反复检查组策略编辑器却找不到原因的困…...

RAG检索质量提升秘籍:拆解链路,逐层优化,告别不稳定!

本文深入探讨了RAG检索项目中常见的质量不稳定问题,并提出了一种有效的解决策略。通过将检索链路拆分为Query理解、多路召回、候选融合和重排序与边界控制四个阶段,逐步排查并优化每个环节。文章详细介绍了在每个阶段的具体优化方法,如Query层…...

基于 eNSP 的校园网 NAT、DNS、HTTP 与访问控制综合实验

​​实验软件:eNSP | 实验内容:VLAN、单臂路由、静态 NAT、ACL、OSPF、DNS、HTTP、Telnet​📌 前言这次实验的目标,是在 eNSP 中搭建一个包含学校网络、运营商网络、百度服务器网络的综合实验环境,并完成题目要求中的…...

像素史诗·智识终端Java开发环境快速配置:基于镜像的一站式解决方案

像素史诗智识终端Java开发环境快速配置:基于镜像的一站式解决方案 1. 为什么选择镜像部署Java开发环境 对于Java开发者来说,环境配置一直是个头疼的问题。不同版本的JDK、Maven仓库配置、IDE插件安装...这些繁琐的准备工作往往要耗费半天甚至更长时间。…...

在 Go 语言中声明包级(全局)映射的正确方法

Go 不允许在函数外部使用 : 简短变量声明语法,但可通过 var 声明包级 map 变量,并用 make() 初始化,从而安全、高效地创建全局映射。 go 不允许在函数外部使用 : 简短变量声明语法,但可通过 var 声明包级 map 变量&#xff0…...

ccmusic-database效果展示:16流派Top5预测准确率统计(含Confidence阈值分析)

ccmusic-database效果展示:16流派Top5预测准确率统计(含Confidence阈值分析) 1. 项目概述 音乐流派分类一直是音频分析领域的核心挑战之一。ccmusic-database项目基于深度学习方法,构建了一个能够准确识别16种音乐流派的智能分类…...

类设计--友元+静态成员+对象之间的关系

一.友元 1. 核心定义 友元是 C 提供的打破封装的机制:允许外部函数 / 类访问一个类的私有 (private) / 保护 (protected) 成员。 2. 三大友元类型(必考) (1)全局函数作为友元 在类内部声明 friend 全局函数原型&…...

Qwen3.5-9B-GGUF高效率部署:单卡RTX 3090/4090运行9B模型详细参数配置

Qwen3.5-9B-GGUF高效率部署:单卡RTX 3090/4090运行9B模型详细参数配置 1. 项目概述 Qwen3.5-9B-GGUF是基于阿里云开源的Qwen3.5-9B模型,经过GGUF格式量化后的高效推理版本。这个项目使用llama-cpp-python和Gradio构建了一个完整的推理服务,…...

AI 时代,软件的价值还剩什么,以及我们为什么要开源

最近公司内部在讨论一件事: 要不要把现有的一部分 PC 软件开源。 这件事表面上看是在聊开源,实际上讨论到最后,绕不开的还是另一个更大的问题: 在 AI 时代,软件本身到底还有多少价值? 这也是我这段时间一直…...

如何评估一个 AI Agent Harness Engineering 的性能表现

如何评估一个 AI Agent Harness Engineering 的性能表现 关键词:AI Agent、Harness Engineering、性能评估体系、任务调度准确率、容错恢复率、资源利用率、端到端时延 摘要:随着AI Agent从概念验证走向大规模产业落地,作为Agent"神经中枢"的Harness控制层的性能直…...

避开这些‘天坑’!2025年投稿生信文章,我总结的选刊避雷指南(附具体期刊分析)

避开这些‘天坑’!2025年投稿生信文章,我总结的选刊避雷指南(附具体期刊分析) 在生物信息学领域,发表研究成果是每位研究者必经之路。然而,选错期刊不仅会浪费宝贵时间,还可能影响学术声誉。本文…...

egergergeeert开源可部署实践:本地化图像生成规避数据外泄风险

egergergeeert开源可部署实践:本地化图像生成规避数据外泄风险 1. 产品概述 egergergeeert 是一套面向图像创作场景的文生图解决方案,支持通过自然语言描述直接生成各类视觉内容。该工具特别适合需要快速产出概念图、插画草图、角色设计等创意工作的场…...

保姆级教程:人脸分析系统API调用全解析,小白也能玩转自动化

保姆级教程:人脸分析系统API调用全解析,小白也能玩转自动化 1. 为什么你需要学习API调用 当你第一次使用Face Analysis WebUI时,可能会被它直观的图形界面所吸引——上传图片、点击按钮、查看结果,一切都那么简单。但当你需要处…...

Linux内核SCSI错误处理实战:当你的硬盘IO卡住或报错时,内核到底做了什么?

Linux内核SCSI错误处理实战:当硬盘IO卡住时内核的救援行动 那块标着"企业级"的硬盘突然停止响应时,我正喝着第三杯咖啡。监控系统疯狂报警,数据库查询开始排队,而iostat显示的await数值正以每秒100ms的速度攀升。作为运…...

Z-Image权重测试台部署教程:WSL2环境下NVIDIA Container Toolkit配置

Z-Image权重测试台部署教程:WSL2环境下NVIDIA Container Toolkit配置 1. 项目简介 Z-Image权重测试台是一款基于阿里云通义Z-Image底座开发的Transformer权重可视化测试工具,专为LM系列自定义权重打造。这个工具解决了模型调试过程中的几个核心痛点&am…...

Phi-3.5-mini-instruct入门指南:中英混合输入识别与响应机制

Phi-3.5-mini-instruct入门指南:中英混合输入识别与响应机制 1. 快速了解Phi-3.5-mini-instruct Phi-3.5-mini-instruct是微软推出的轻量级指令微调大语言模型,采用Transformer解码器架构,支持128K超长上下文窗口。这个3.8B参数的模型特别针…...

通义千问3-Reranker-0.6B与LSTM模型的对比研究

通义千问3-Reranker-0.6B与LSTM模型的对比研究 1. 引言 在文本排序和相关性判断任务中,选择合适的模型架构往往决定了最终效果的好坏。今天我们来对比两个在思路上截然不同的模型:基于Transformer架构的通义千问3-Reranker-0.6B和传统的LSTM模型。 通…...

二叉树的遍历和线索二叉树--中序线索二叉树的遍历

一、遍历特点 1. 不需要递归 2. 不需要栈 3. 顺着线索指针,依次访问 4. 遍历顺序依然:左 → 根 → 右二、先回顾结点标记 - ltag 0:left 是左孩子 - ltag 1:left 是前驱线索- rtag 0:right 是右孩子 - rtag 1&…...