小编Pau*_*aul的帖子

Less --hilite-unread 在空行上打印回车 ^M

当打印带有 Windows 行结尾 (CRLF) 的文件时,如果使用选项,则在空行中less显示回车符。包含任何文本的行都会正确显示,跳过回车符。^M--hilite-unread

我看了一遍说明书,好像只要CR后面加LF就应该是一样的。添加--raw-control-chars会删除标记,但不建议使用它,并且它会产生我不想要的其他后果。

$ printf 'first\r\n\r\nsecond\r\n' | LESS= less --quit-if-one-screen
first

second

$ printf 'first\r\n\r\nsecond\r\n' | LESS= less --quit-if-one-screen --hilite-unread
first
^M
second

$ printf 'first\r\n\r\nsecond\r\n' | LESS= less --quit-if-one-screen --hilite-unread --raw-control-chars
first

second

Run Code Online (Sandbox Code Playgroud)

这是 中的已知错误less,还是我可以做些什么?现在我将不再使用--hilite-unread.

有趣的是,当文本足够长以滚动时,向上滚动时^M标记会消失。因此,这些仅针对新打印的行显示。可能less还不知道 LF 会在那里吗?但为什么它适用于带有文本的行呢?

我使用 Windows 版 Git,版本:git 2.43.0.windows.1、bash 5.2.21(1)、less 643。

bash command-line less carriage-return newlines

4
推荐指数
1
解决办法
78
查看次数

标签 统计

bash ×1

carriage-return ×1

command-line ×1

less ×1

newlines ×1