Ответ 1
Я только что нашел это в терминале для OSX:
Редактирование> Навигация> Переход к предыдущей отметке: cmd + UP.
У меня есть программа, которая имеет много выходных данных. После этого я часто хочу вернуться назад к началу прогона, чтобы я мог посмотреть на некоторые вещи. Поскольку выход так длинный, я вижу, что я бесконечно прокручиваю страницу и пытаюсь перетащить полосу прокрутки вправо до той точки, где она могла начаться. Спустя какое-то время это становится довольно утомительным, поэтому мне интересно:
Есть ли способ легко вернуть терминал в ту часть, где была дана последняя команда?
Я только что нашел это в терминале для OSX:
Редактирование> Навигация> Переход к предыдущей отметке: cmd + UP.
Я использую iTerm2
в macOS, я придумал метод. Во-первых, вы должны убедиться, что вы проверяете Unlimited scrollback
прокруток в настройках iTerm2.
После запуска команды в терминале и получения длинного вывода.
Нажмите Cmd
+ F
(возможно, ctrl
+ F
в окнах), тогда вы можете выполнить поиск в терминале следующим образом:
Наконец, просто выполните поиск имени пользователя и нажмите Enter
, в общем, вы перейдете к последней команде:
Если вы используете терминал, такой как терминал GNOME, вы можете искать назад. Например, Ctrl + Shift + f затем введите либо буквенную команду, либо регулярное выражение для ее соответствия (и убедитесь, что "Соответствовать как регулярное выражение" установлено соответственно).
Обходным решением было бы отправить вывод на пейджер, например, less
, где вы можете перемещаться и проверять вывод, а затем возвращаться в командную строку, как будто ничего не было напечатано.
Я передаю вывод в less
, например command | less
command | less
, потому что он имеет множество полезных клавиш для быстрой навигации, а также поддерживает поиск. Вы также автоматически запускаете в самом начале вывода.
Вот несколько полезных команд для быстрой навигации:
f
или SPACE
для перемещения вперед на страницу, b
для перемещения назад на страницу. Страница относится к размеру выходного окна терминала.g
чтобы перейти к самому началу, G
чтобы перейти к концу, [n]g
чтобы перейти к n
й строке. Например, 5g
перейдет на 5-ю строку./pattern
для поиска термина, затем перейдите с n
для следующего и N
для предыдущего вхождения. Поддерживает RegExp.q
чтобы выйти. Для получения дополнительной информации просто сделайте man less
. По умолчанию справочные страницы также используют less
, поэтому все вышеперечисленное работает.
Не проще ли просто перенаправить вывод в файл, тем самым поддерживая окно терминала "чистым"?
что-то вроде: command >> output_file
Если вы работаете с screen
, я думаю, что есть способ.
screen
командыCtrl+a
а затем [
. экран переходит в режим копирования. Также screen
имеет множество преимуществ. Проверьте http://kb.iu.edu/data/acuy.html
Простой Hack, который работает, если на печать выводится большая часть времени (например, когда вы вызываете make):
Прокрутите немного вверх (например, одну строку) сразу после выполнения команды. Поскольку вы больше не находитесь внизу, это предотвращает автоматическую прокрутку большинства терминалов. Как только вы думаете, что вывод был напечатан (положение полосы прокрутки и ощущение - хорошие индикаторы), вы можете прокрутить вниз. Просто избегайте прокрутки до самой последней строки во время печати.