如何在反向搜索前自动清除终端?

如何在反向搜索前自动清除终端?

clear我想知道当我使用 启动反向搜索时是否可以自动运行该命令CTRLR

我熟悉precmdzsh 中的功能,但不知道如何将其限制为命令子集而不减慢销售速度。一种可能的解决方案是添加一个if条件precmd来检测反向搜索,尽管我不确定该条件应该是什么history-incremental-search-backward

答案1

function my-history-incremental-search-backward {
    zle clear-screen
    zle history-incremental-search-backward
}
zle -N my-history-incremental-search-backward
bindkey "^r" my-history-incremental-search-backward

我们添加了一个自定义增量搜索功能,该功能首先清除屏幕(您也可以运行,但看起来很难看,然后如果您退出搜索,clear则不会重新绘制提示),然后运行真正的.control+chistory-incremental-search-backward

或者,您可以history-incremental-search-backward使用以下方法重新定义小部件:

function history-incremental-search-backward {
  zle clear-screen
  zle .$WIDGET
}
zle -N history-incremental-search-backward

因此,您甚至不需要重新绑定小部件已绑定的所有键。

相关内容