Позвольте меньшему количеству работы как кошка, если только один экранирует полный текста

На моей машине Debian здесь, less всегда открывает альтернативный экран для показа материала.

Это является раздражающим, если существует только 2 или 3 строки, которые будут отображены. Я хотел бы less кому:

  • работайте пейджером, если существуют больше, чем экранная из информации

  • и работа как cat, если нет.

По-видимому, less имеет -F флаг для случаев "одного экрана":

- F или - quit-if-one-screen

Причины меньше, чтобы автоматически выйти, если весь файл может быть отображен на первом экране.

Но в моем случае это просто выходит снова, и никакая информация не отображена. Это больше похоже cat /dev/null и таким образом не действительно полезный.

Имеет любого идея, как достигнуть этого less поведение?

7
задан 26.11.2010, 14:55

2 ответа

Можно объединиться -F с -X, который отключает terminfo последовательность инициализации.

export LESS=-FX

Это имеет (скидка) преимущество это less не очищает отображаемый текст на выходе, неважно, какой длины файл был.

4
ответ дан 07.12.2019, 14:57

Вы могли создать маленький сценарий обертки, как так:

#!/bin/bash
if (( $(wc -l < "$1") < ${LINES:-20} ))
then
        cat "$1"
else
        less "$1"
fi

Если Вы создаете это в /usr/local/bin или ~/bin поскольку файл назвал что-то как less2 (Вы могли бы хотеть использовать очень краткое название как l для легкого ввода), и удостоверяются, что это - исполняемый файл с chmod a+x /usr/local/bin/less2, можно использовать его вместо less для команд формы less filename, т.е. less2 filename (или l filename).

Это не будет работать при передаче по каналу вывода другой команды через less, или если Вы указываете опцию (опции) или несколько имен файлов.

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

2
ответ дан 07.12.2019, 14:57

Теги

Похожие вопросы