Как сделать Меньше указать местоположение в процентах
Теперь я пытаюсь показать знак процента также при запуске, например, команды
man emacs
Если вы запустите его, вы получите, например, "байт 3300".
Ответ Alex говорит мне, что нам нужно сделать отдельную функцию оболочки
man "$1"| col -b > /tmp/manual
less /tmp/manual
где $1 относится к первому параметру.
Новая проблема находится в потоке. Благодаря Юлию за крутой ход!
Ответы
Ответ 1
Решение
Менее ручная версия ответа knitatoms
в сочетании с ответ Alex Marteilli
работает довольно хорошо: передайте опцию +Gg
на less
через опцию пейджера.
Например, попробуйте
man -P 'less -s -M +Gg' man
Это можно сделать постоянно, поставив
export MANPAGER='less -s -M +Gg'
в одном из файлов конфигурации оболочки (выше синтаксис для Bash и
ЗШ). Теперь, например, man man
отображает процент, как вы
хотел!
Внимание!
Нельзя помещать +Gg
в переменную less
! Например,
делать
export LESS='-M +Gg'
вызовет проблемы при чтении очень больших файлов. Например,
yes | LESS='-M +Gg' less
работает не очень хорошо...
Объяснение
Как объяснили другие ответы, проблема в том, что less
не может сказать
какой процент в файл вы до тех пор, пока он не знает, как долго файл
is, и он не читает в конце файла по умолчанию при чтении
из трубы.
В разделе OPTIONS
man less
:
+ If a command line option begins with +, the remainder of that
option is taken to be an initial command to less. For exam‐
ple, +G tells less to start at the end of the file rather than
the beginning, and +/xyz tells it to start at the first occur‐
rence of "xyz" in the file. As a special case, +<number> acts
like +<number>g; that is, it starts the display at the speci‐
fied line number (however, see the caveat under the "g" com‐
mand above). If the option starts with ++, the initial com‐
mand applies to every file being viewed, not just the first
one. The + command described previously may also be used to
set (or change) an initial command for every file.
g
означает "возврат к началу файла".
Из man man
:
-P pager, --pager=pager
Specify which output pager to use. By default, man uses pager
-s. This option overrides the $MANPAGER environment variable,
which in turn overrides the $PAGER environment variable. It
is not used in conjunction with -f or -k.
The value may be a simple command name or a command with argu‐
ments, and may use shell quoting (backslashes, single quotes,
or double quotes). It may not use pipes to connect multiple
commands; if you need that, use a wrapper script, which may
take the file to display either as an argument or on standard
input.
Ответ 2
export LESS="-m"
В общем случае переменная среды LESS
может содержать опции, эквивалентные флажкам командной строки, которые вы могли бы явно передать при запуске LESS
- здесь, параметр -m
, который сообщает ему, чтобы он предлагал более богатый (включая процент, Как вы спросили). Вы можете передать также несколько параметров внутри этой переменной окружения, заканчивая каждый с $
. Для получения дополнительной информации см. меньше manpage.
Изменить: это, конечно, возможно (в зависимости от того, как вы используете меньше, например, если вы подключаетесь к нему, а не вызываете его в файле), который меньше не знает общий размер будет отображаться, и в этом случае, конечно, он не может отобразить% - в этом случае он подскажет, какую небольшую информацию у него есть, например, сколько текста оно пока покало. Например, man
использует LESS
таким образом, по каналам.
Итак, если вам нужно увидеть% in man
(а не при вызове LESS
непосредственно в файл), вам нужно использовать "альтернативный пейджер" (переменная среды MANPAGER
или переключатель -P
в командной строке man
), который представляет собой простой script, который сохраняет man
вывод в файл temp, а затем использует LESS
для последнего. (Это может потерять собственную "окраску", если вы не будете играть еще дальше и глубже и т.д. И т.д. - аналогичным образом вы можете использовать опцию "preformat pages" в man
и расстегнуть такую предварительно отформатированную страницу на временный файл, на котором будет выполняться LESS
и т.д., но это начинает становиться несколько сложным "простым script"; -).
Ответ 3
В Linux я просто перехожу в конец справочной страницы с помощью Shift + G, а затем вернемся к началу с G. (Или вы можете вернуться в предыдущую позицию с помощью ' ').
Меньше тогда имеется достаточно информации, чтобы отобразить процент от того, насколько далеко вы находитесь в файле. (Вам может потребоваться ввести -M
, чтобы получить длинное приглашение.)
Это немного взломать, но только два нажатия клавиши. Не уверен, что это работает на OS/X.
Ответ 4
Чтобы добавить к ответу Alex Martelli:
Обратите внимание, что вы также можете передать любой параметр командной строки меньше во время выполнения, просто набрав его (включая -), а затем введите ключ. Таким образом, вы можете просто ввести
-m<Enter>
в бежать меньше, чтобы переключить длинное приглашение.
Это особенно полезно для параметров, которые необходимо изменить во время выполнения, например. -S (включение/выключение линии).
Ответ 5
В режиме live less
я использовал -M
.
Что "-M
Enter" в приглашении :
с меньшим количеством запусков.
С действительно большими буферами мне также пришлось дойти до конца, чтобы "обнаружить" их размер. End и обратно Home.
Примечание. Я бы разместил комментарий в ответ @sleske, но, как я помню, комментарии не поддерживают теги <kbd>Keyboard<kbd>
.
Ответ 6
У меня это в моей среде. Он напечатает <filename> - Lines X-Y of Z
внизу или, по крайней мере, такую же информацию, как и она.
export LESS='-P?f%f - .?ltLine?lbs. %lt?lb-%lb.?L of %L.:?pt%pt\%:?btByte %bt:-...'