Горизонтальная прокрутка с меньшими приращениями с меньшим -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"

Вопрос

Есть ли способ, которым я могу прокручивать с меньшими приращениями, либо символом, либо словом?

Майк
источник

Ответы:

19

Единственные горизонтальные команды прокрутки прокручиваются на половину экрана, но вы можете передать числовой аргумент, чтобы указать количество символов, например, набрав прокрутку 4 Rightвправо на 4 символа. Меньше на самом деле не имеет понятия «текущая строка» и не разбивает строку на слова, поэтому невозможно прокрутить слово за раз.

Вы можете определить команду, которая прокручивается на фиксированное количество символов. Например, если вы хотите, чтобы Shift+ Leftи Shift+ Rightпрокручивались по 4 символа за раз:

  1. Определите последовательности управления, которые ваш терминал отправляет для этих комбинаций клавиш. Терминалы послать последовательность байт , которые начинаются с побегом (которое может быть записано \e, \033, ^[в различных контекстах) характером для функциональных клавиш и keychords. Нажмите Ctrl+ V Shift+ Leftв приглашении оболочки: это вставит escape-символ буквально (вы увидите ^[на экране) вместо того, чтобы обрабатывать его вашей оболочкой, и вставит остальную часть escape-последовательности. Обычная настройка имеет Shift+ Leftи Shift+ Rightотправить \eO2Dи \eO2Cсоответственно.

  2. Создайте файл с именем ~/.lesskeyи добавьте следующие строки (настройте, если ваш терминал отправляет различные escape-последовательности):

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

    Затем запустите lesskey, который преобразует человекочитаемый ~/.lesskeyв двоичный файл, ~/.lessкоторый lessчитает, когда он запускается.

Жиль "ТАК - перестань быть злым"
источник
19

Вы можете использовать опцию "- #", чтобы установить количество столбцов для горизонтальной прокрутки.

С man-страницы:

- # или --shift
Задает количество позиций по умолчанию для горизонтальной прокрутки в командах RIGHTARROW и LEFTARROW. Если указанное число равно нулю, оно устанавливает количество позиций по умолчанию равным половине ширины экрана.

Пример (установить горизонтальную прокрутку до 10 столбцов):

менее -S - # 10 my_file

Рикард
источник
Есть ли возможность добавить эту опцию в некоторый файл конфигурации, чтобы мне не приходилось передавать опцию - # 1 каждый раз, когда я набираю команду?
Трисмегистос
1
@Trismegistos Да, вы можете установить переменную окружения в вашем ~/.bashrcсexport LESS="-# 1"
wisbucky
Вы также можете установить процент ширины экрана, если число начинается с десятичной точки. Например, -# .25прокрутите на 1/4 ширины экрана.
Висбуки
8

Введите число, которое представляет собой количество столбцов, к которым вы хотите прокрутить, затем нажмите клавишу со стрелкой.

Источник: список полезных функций `less`

Майк
источник
2

Альтернатива - использовать mostпейджер.

В mostno-wrap ( -S) используется по умолчанию и Rightпрокручивает один столбец вправо вместо половины экрана. Используйте >или Tabдля быстрой прокрутки.

Другой альтернативой является w3mпейджером (также один из лучших терминалов веб - браузеров) , где вы можете использовать <, >а также, и ,, .для более мелкого зерна прокруткой ( те же клавиши на клавиатуре Qwerty).

Стефан Шазелас
источник
Это неправда. Больше - это упаковка по умолчанию, и нет опции -S.
Трисмегистос
1
@Trismegistos, я не говорю о more(для которого есть десятки реализаций), но о most(Джон Э. Дэвис, я не знаю ни о какой другой реализации).
Стефан Шазелас