如何在使用TUI工具FZF时临时修改Windows Terminal标题栏并在退出后恢复?
如何在使用TUI工具FZF时临时修改Windows Terminal标题栏并在退出后恢复?
嘿,这个需求完全可以实现!核心思路就是在启动fzf前先保存当前终端的标题,临时修改成带标记的标题,等fzf退出后再把原标题恢复回来——这样AutoHotkey就能通过标题里的[[FZF MODE]]轻松识别fzf是否处于活跃状态了。
我自己在Windows Terminal Preview + PowerShell 7里亲测有效,具体步骤如下:
创建自定义的fzf调用函数
打开PowerShell,把下面的代码定义成一个函数,它会帮你自动处理标题的切换:function fzf-with-title { # 先保存当前终端的原始标题 $originalTitle = $host.ui.RawUI.WindowTitle # 修改标题为带FZF模式标记的内容 $host.ui.RawUI.WindowTitle = "$originalTitle - [[FZF MODE]]" # 启动fzf,保留原命令的所有参数(@args会传递你输入的参数) fzf @args # 等fzf退出后,立刻恢复原始标题 $host.ui.RawUI.WindowTitle = $originalTitle }让函数永久生效
如果你希望每次打开PowerShell都能直接用这个函数,把它添加到你的PowerShell配置文件里:- 在PowerShell里输入
notepad $PROFILE打开配置文件(如果提示文件不存在,直接新建一个就行) - 把上面的函数代码粘贴进去,保存后关闭记事本
- 输入
. $PROFILE让配置立即生效,或者重启Windows Terminal
- 在PowerShell里输入
之后你只要用 fzf-with-title 代替原来的 fzf 命令,终端标题就会自动切换:
- 启动前:
PowerShell 7 - C:\TEMP - 运行fzf时:
PowerShell 7 - C:\TEMP - [[FZF MODE]] - 退出后:自动恢复成
PowerShell 7 - C:\TEMP
这样AutoHotkey就能通过检测标题中的[[FZF MODE]]字符串,精准判断fzf是否在运行,完美解决你的热键自定义需求~
备注:内容来源于stack exchange,提问作者LazyCaterinxxx
相关产品推荐
相关产品推荐

