Mac Terminal показывает конец буфера - PullRequest
0 голосов
/ 06 апреля 2011

Когда я вызываю команды как man, он помещает все в буфер и показывает только одну страницу за раз. Я могу перемещаться с помощью клавиш со стрелками или пробела, но я хочу, чтобы он показывал все сразу, без необходимости пролистывать его. Что мне нужно сделать, чтобы это изменить? Я почти уверен, что это какое-то связывание клавиш, но я не могу понять это.

Я бы предпочел, чтобы он просто просто автоматически прокручивал до конца. Если есть какая-то команда, которую я могу ввести, чтобы она автоматически делала это, пожалуйста, дайте мне знать. Если вместо этого мне придется использовать привязку клавиш, чтобы она прокручивалась до конца буфера или отправляла все в оболочку, дайте мне знать.

Если я делаю привязку клавиш, я бы предпочел, чтобы это было что-то вроде shift / command + down, чтобы прокрутить все вниз. И тогда я бы, вероятно, сопоставил аналогичный, чтобы вернуться наверх.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 06 апреля 2011

Когда вы используете man, он передает ваш результат через пейджер.Если вы не настроили его, на Mac это /usr/bin/less -is.

Один из способов обойти пейджер - установить его на ul.Например:

% man -P ul ls 
LS(1)                     BSD General Commands Manual                    LS(1)
[...]

ul - это фильтр, который обеспечивает выделение жирным шрифтом и подчеркиванием.Они закодированы довольно архаичным образом X^HX и X^H_ соответственно, которые современные терминалы не поддерживают;пейджеры обычно сами переводят их в конечные escape-последовательности.

С man есть пара других опций:

  1. В OS X 10.5 и более поздних версиях вы можете использоватьМеню помощи, чтобы получить man страниц.Просто нажмите / и введите название нужной страницы, затем выберите его в меню (хотя я думаю, что для этого используется фиксированный путьк несчастью).Это просто запускает man -P ul для вас в новом окне терминала.
  2. Другой способ - рендеринг в PostScript, который OS X может конвертировать в PDF, приятно отформатированный для печати, если вы хотите.Я использовал эту функцию zsh в течение многих лет:

     gman() {
       PDF=/tmp/man.$$.pdf
       print 'Converting to PDF...'
       man -t $@ | /usr/bin/pstopdf -i -o $PDF
       print 'Opening...'
       open $PDF
       { sleep 5; rm -f $PDF } &!
     }
    
0 голосов
/ 06 апреля 2011

Пейджер less, который обычно используется по умолчанию в большинстве систем, уже имеет привязки клавиш для прямого перехода к концу и началу ввода:

  • g перейдет к началу ввода
  • G (что на самом деле будет что-то вроде Shift+g, если вы не печатаете с включенным Caps Lock) будет идти до конца ввода
0 голосов
/ 06 апреля 2011

Изменение пейджера на cat вместо значения по умолчанию (/usr/bin/less -is на моей машине) должно делать то, что вы хотите. Из справочной страницы man(1) :

-P пейджер

Укажите, какой пейджер использовать. Эта опция переопределяет переменную окружения MANPAGER, которая, в свою очередь, переопределяет переменную PAGER. По умолчанию man использует /usr/bin/less -is. «

Таким образом, вы можете либо man -P cat whatever, либо вы можете установить MANPAGER и / или PAGER в вашей среде на cat и получить то же поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...