使用列标尺显示文本文件的 Shell 程序

使用列标尺显示文本文件的 Shell 程序

我正在寻找一个 shell 实用程序或程序,它允许我使用内置命令以交互方式查看文本文件less,并在屏幕顶​​部显示固定标尺,以便我可以看到确切的列偏移量每个角色的所有时间。

此功能内置于一些 DOS 实用程序中,例如古老的 list.com 和 4Dos。这是命令的屏幕截图list,显示了我正在寻找的内容:

在此输入图像描述

我已经搜索过,但未能在基于 UNIX 的 shell 中找到任何解决方案。有人知道如何做到这一点吗?

答案1

传统的外壳无法做到这一点。偶尔有人会提到可视化 shell,但 (a) 快速检查发现没有人提到该功能,并且 (b) 这些功能使用得并不多。

文本编辑器可能具有该功能(但这不是您所要求的)。

诸如screen或 之类的终端应用程序tmux将是添加此功能的合适位置(但两者都没有)。

对于它的价值,我在应用程序中执行此操作不是文本编辑器,ded(目录编辑器),并发现它对于查看文件很有用:

屏幕截图来自 ded

(标尺可以交互地向上/向下移动)。

答案2

您可以在 ViM 中查看文本文件并使用:

:set colorcolumn=72

这不会给你一个标尺,但会给你一个视觉标记。

ViM 可以是配置为直接替代 less

答案3

笔记:以下方法不考虑诸如 之类的应用程序中的水平滚动less。它是终端本身的列标尺,而不是特定的文件。

GNUscreen可以确信这样做,尽管它没有明确用于此目的的内置命令。创建一个包含以下内容的文件.screenrc

hardstatus alwaysfirstline "----|----10---|----20---|----30---|----40---|----50---|----60---|----70---|----80---|----90---|----100--|----110--|----120--|----130--|----140--|----150--|----160--|----170--|----180--|----190--|----200"

当然,您可以将字符串扩展到您认为需要的任意数量的列。它会被截断以适应显示时终端的宽度,因此您无需担心它会换行到多行。

然后执行:

$ screen

您将拥有一个与屏幕截图中显示的非常相似的列标尺。请注意,默认情况下,Ctrl+A是 的命令字符screen。如果您经常使用该按键序列,您可能需要通过一行escape来更改默认值.screenrc- 请参阅screen(1)参考资料。

相关内容