我现在一直在使用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
,但没有经过编辑。