WezTerm 如何将当前提示符移到视口顶部并保留历史?
技术问小赵
结论
WezTerm 提供 ScrollToPrompt,可以在保留滚屏历史的情况下,跳转到带有语义标记的提示符。这个操作用于在提示符之间导航。官方说明没有保证它能把当前正在输入命令的提示符固定在视口顶部,所以它只能作为接近的替代方式,无法实现与 PowerShell Ctrl+L 相同的效果。
ScrollToTop 会跳到整个滚屏历史的顶部。ClearScrollback 'ScrollbackAndViewport' 则会清除滚屏历史和当前视口。这两种操作都无法同时满足保留历史和把当前提示符移到顶部的需求。
配置提示符导航
可以在 WezTerm 配置中绑定快捷键,向前或向后跳转到语义提示符:
local wezterm = require 'wezterm'
local act = wezterm.action
return {
keys = {
{ key = 'UpArrow', mods = 'CTRL|SHIFT', action = act.ScrollToPrompt(-1) },
{ key = 'DownArrow', mods = 'CTRL|SHIFT', action = act.ScrollToPrompt(1) },
},
}
ScrollToPrompt 需要 shell 输出 OSC 133 语义提示符标记。如果 shell 没有发送这些序列,就无法按提示符导航。该操作默认没有绑定快捷键;配置后,可以跳转到前一个或后一个提示符。实际定位效果取决于 shell 是否提供所需标记。
关于清除操作
WezTerm 的 ClearScrollback 有几种模式。ScrollbackOnly 只清除历史缓冲区,保留当前视口内容;ScrollbackAndViewport 会同时清除历史和视口,并将提示符设为新的首行。后者可以在清屏后让提示符置顶,但会删除原有滚屏历史,因此不适合需要回看历史的场景。
更多细节可参考 WezTerm 的 ScrollToPrompt 和 ClearScrollback 文档。
备注:内容仅供参考。
