以更少的-S以较小的增量进行水平滚动


25

less用来解析HTTP访问日志。我想在一行上整齐地查看所有内容,因此我正在使用-S

我的问题是终端窗口的前三分之一占用了我不在乎的元数据。当我使用箭头键向右滚动时,我发现它滚动超过了我关心的信息的开头!

我可以删除每一行的开头,但是我不知道将来是否需要该数据,因此我不想每次查看一些日志时都必须维护单独的文件或运行脚本。

这行:

access.log00002:10.0.0.0-USER_X [07 / Nov / 2013:16:50:50 +0000]“ GET / some / long / URL”

将滚动到: ng/URL"

有没有一种方法可以按字符或单词以较小的增量滚动?

Answers:


19

唯一的水平滚动命令滚动半屏,但是您可以传递一个数字参数来指定字符数,例如4 Right,向右滚动滚动4个字符。Less并不真正具有“当前行”的概念,也不会将行拆分为单词,因此无法一次滚动一个单词。

您可以定义一个以固定数量的字符滚动的命令。例如,如果要让Shift+ LeftShift+一次Right滚动4个字符:

  1. 确定终端为这些组合键发送的控制顺序。终端发送与所述逃逸(可写入开始的字节序列\e\033^[在各种情况下)字符的功能键和keychords。在外壳程序提示符处按Ctrl+ V Shift+ Left:这将按原样插入转义符(您将^[在屏幕上看到),而不是由外壳程序对其进行处理,并插入其余的转义序列。常见设置分别有Shift+ LeftShift+ Rightsend \eO2D\eO2C

  2. 创建一个名为的文件,~/.lesskey并添加以下行(如果您的终端发送了不同的转义序列,请进行调整):

    #command
    \eO2D noaction 4\e(
    \eO2c noaction 4\e)
    

    然后运行lesskey,它将人类可读~/.lesskey的文件转换为二进制文件~/.less,并less在启动时读取。


19

您可以使用选项“-#”来设置水平滚动的列数。

从手册页:

-#或--shift
指定在RIGHTARROW 和LEFTARROW命令中水平滚动的默认位置数。如果指定的数字为零,则它将默认位置数设置为屏幕宽度的一半。

示例(将水平滚动设置为10列):

少-S-#10 my_file


是否可以将此选项添加到某些配置文件中,所以我不必每次输入命令时都传递-#1选项?
Trismegistos

1
@Trismegistos是的,您可以~/.bashrc使用export LESS="-# 1"
wisbucky在

如果数字以小数点开头,则还可以设置屏幕宽度的百分比。例如,-# .25将滚动屏幕宽度的1/4。
wisbucky


2

另一种方法是使用most寻呼机。

在中most-S默认值为no-wrap()Right,它向右滚动一列而不是半屏。使用>Tab滚动更快。

另一种方法是w3m寻呼机(也是最好的终端Web浏览器之一),您可以使用<>以及和,.为更加细致的滚动(在标准键盘相同的键)。


这不是真的。更多的是自动换行,没有-S选项。
Trismegistos

1
@Trismegistos,我不是在谈论more(有数十种实现),而是在谈论most(John E. Davis,我不知道其他任何实现)。
29StéphaneChazelas
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.