![任何可以选择显示全屏的 CLI 寻呼机(当出现提示时)?](https://linux22.com/image/217382/%E4%BB%BB%E4%BD%95%E5%8F%AF%E4%BB%A5%E9%80%89%E6%8B%A9%E6%98%BE%E7%A4%BA%E5%85%A8%E5%B1%8F%E7%9A%84%20CLI%20%E5%AF%BB%E5%91%BC%E6%9C%BA%EF%BC%88%E5%BD%93%E5%87%BA%E7%8E%B0%E6%8F%90%E7%A4%BA%E6%97%B6%EF%BC%89%EF%BC%9F.png)
我现在一直在使用less
,有一件事我希望它能有所不同。
当我git log --pretty=oneline --abbrev-commit
这样做时,它会立即切换到全屏(因为输出很长),而 99% 的时间我只关心前 5 个提交左右。当然我可以做git log --pretty=oneline --abbrev-commit | head -n 5
,但这是我想避免的额外工作。
理想情况下,我希望寻呼机首先显示前 N 行,而不清除屏幕并接管。如果我按q
,它应该退出并保留那 5 行。如果我按下space
(或其他什么),那么它应该切换到全屏,就像通常一样。less -F
有点像那样,但不完全一样。我想避免在长输出时跳转到全屏。
我看不出有什么方法可以编写这个脚本。是否有任何替代寻呼机可以或通过某种方式实现它less
?
答案1
如果你只想要 5 行 git 日志,那么只需使用 git 自己的密钥:
git log --pretty=oneline --abbrev-commit -n5
log命令的按键-n
是专门为此设计的。
运行git log --pretty=oneline --abbrev-commit | head -n 5
消除了寻呼机的要求。只会head
将数据发送到 TTY,同时删除所有转义序列(意味着没有颜色)。
如果您对其他选项感兴趣,不git
相关。然后您可以查看能够像tmux
或 gnu一样分割屏幕的终端screen
。拆分终端窗口,您现在在一个窗口中有两个 shell - 在一个 shell 中运行标准寻呼机,在另一个 shell 中运行其他东西。它实际上是两个(或更多)控制台,但从窗口管理器的角度来看,它仍然是一个带有一组最大化-最小化-关闭按钮的窗口。
Emacs
并且vim
还能够进行分屏,将一个部分提供给 shell,另一部分提供一些文本。
有一个寻呼机most
可以分屏并同时显示多个不同的文件。看起来很像vim
,但没有经过编辑。