Таким образом, мы используем, man whatever
чтобы получить информацию об использовании команды и другую информацию whatever
, когда соответствующий раздел информации найден, я бы хотел выйти из man
команды, оставив информацию на экране. Поэтому я могу набрать следующую команду с рефери выше. Но man
команда покидает весь экран, чтобы восстановить старый экран, похожий на vim
. Есть ли способ добиться этого?
24
Ответы:
Я считаю, что это не столько
man
само по себе, сколько о вашем предпочтительном пейджере (PAGER
переменная окружения) в сочетании с используемым терминалом.Я думаю, твой пейджер, вероятно,
less
(типичный пейджер по умолчанию в настоящее время и соответствует описанию).less
имеет опцию,-X
которая может привести вас в соответствие с тем, что вы ищете.Например,
PAGER="less -X" man man
его можно использовать для тестирования, и если вы считаете, что такое поведение предпочтительнее, вы можете установитьPAGER
постоянное значение этого значения.источник
LESS=-X
, чтобы избежать необходимости изменятьPAGER
(я не доверяю ему на 100%, чтобы он работал во всех программах с таким пробелом, хотя это работает в человеке.)Если вы используете меньше как ваш пейджер (что очень распространено), вам не нужно заниматься модификацией вашего пейджера, просто перенаправьте ввод / вывод:
man <whatever you want to man> | cat -
Это распечатает копию на терминал, так что вы можете прокрутить вверх, когда вам это нужно.
источник
-
означает стандарт в, ноcat
предполагает, что в любом случаеПоскольку не только,
less
но и другие текстовые приложения, такие как,vim
демонстрируют ту же чрезвычайно раздражающую особенность, то, что я делаю, это просто устранение способности терминала поддерживать вовлеченные команды изterminfo
базы данных.Эти команды
smcup
иrmcup
, которые были предназначены для включения и перемещения, гдеcup
команда (позиция курсора) была разрешена.Вот функция оболочки, которую я использовал для автоматизации задачи, она работает по крайней мере с Solaris и, вероятно, с большинством дистрибутивов Linux:
Если ваша запись терминала не является резервной
xterm
, вам следует заменитьxterm
на правильное имя терминала в скрипте.источник
Вы можете направить вывод в
cat
командуили используйте его вместо пейджера по умолчанию, как в этом примере, который вызывает man для себя:
источник
Без модификации пейджера, решение с каналами, которые могут работать в большинстве сред:
Примеры для
man ls
man ls | cat
man ls | more
man ls | grep somestring
источник
это 2016, просто откройте второй терминал или вкладку или окно или прочитайте человека онлайн.
источник
Даже на своих серверах (FreeBSD) я устанавливаю X и xfce. Затем я выделяю большой буфер (например, 10 000 строк) для эмуляторов терминала, чтобы я мог полностью прокрутить man-страницу в одной из них и использовать отдельный экземпляр терминала для сборки команды. Работает угощение.
источник