Относительно часто я чувствую, less
что хочу выйти, но оставить то, что я просматривал на экране, чтобы вернуться к нему. Есть какой-либо способ сделать это? Обходные?
(Мой текущий обходной путь - выйти, а затем использовать more
. Поэтому любой обходной путь, который лучше этого, приветствуется. Идеальным было бы то, что я могу использовать, как только я уже внутри less
, возможно, с настройкой оболочки или некоторыми сценариями.)
Мой рабочий стол - OSX, но я использую серверы RHEL и Ubuntu.
git diff
илиgit log
) вless -X
займет буфер прокрутки в моем терминале и вытеснит большую часть предыдущего вывода. Я был бы рад, еслиless
бы мог просто выйти с последним выводом на экран во время выхода; т.е. не более одной страницы буфера прокрутки будет занято после выходаless
. Есть идеи?-R
обычно это более безопасный выбор, чем-r
.-R is "Like -r, but only ANSI "color" escape sequences are output in "raw" form. Unlike -r, the screen appearance is maintained correctly in most cases."
-c
, о том, как обновить экран, когда вы перемещаетесь внутриless
.Ответы:
На самом деле это функция используемого вами эмулятора терминала (xterm, gnome-терминал, konsole, screen). Альтернативный экран, или altscreen, запускается при запуске таких программ, как
less
илиvim
. Этот альтернативный экран не имеет буфера истории и сразу выходит из программы при выходе из программы, возвращаясь к исходному экрану, который восстанавливает предыдущую историю содержимого окна и размещение.Вы можете предотвратить
less
запуск на альтернативном экране, передав аргумент "-X".less -X /path/to/some/file
Вы также можете передать «-X» как переменную окружения. Так что, если вы используете
bash
, поместите это в~/.bashrc
:Однако это не позволяет инициализировать и деинициализировать termcap (возможность терминала), поэтому другие представления при использовании
less
могут отображаться как отключенные.Другой вариант будет использовать
screen
и установить параметрaltscreen off
в вашем~/.screenrc
.less
не очистит экран и должен сохранить цветное форматирование. Предположительноtmux
будет такой же вариант.Эта запись в блоге описывает проблему и предлагает несколько различных решений, которые можно использовать
gnome-terminal
с переменным успехом.источник
git log
(и, вероятно, других цветных команд) испорчен.alias les="/usr/bin/less -X"
git log
проблемы вышеexport LESS="-r -X"
. (Не знаю , что побочные эффекты , которые являются ...)git
устанавливаетLESS
переменную,FRSX
если она не установлена, когда он запускает пейджер, так что вы можете просто оставитьLESS
неустановленной иless
автоматически работать с-FRSX
. Ищитеcore.pager
вgit-config(1)
для получения дополнительной информации.Решение Джорджа не сработало для меня, но это решение сработало (из записи в блоге, указанной в его ответе).
$ infocmp -I xterm > ~/xterm-noclear.src
Редактировать ~ / xterm-noclear.src
измените имя во второй строке с «xterm» на «xterm-noclear» или как вам удобнее (также измените «xterm-debian», если он присутствует)
удалите инструкции 'smcup' и 'rmcup' (например, "smcup = \ E [? 1049h," и "rmcup = \ E [? 1049l,")
$ mkdir ~/.terminfo
$ tic ~/xterm-noclear.src
(x / xterm-noclear должен появиться в вашем каталоге ~ / .terminfo)$ export TERM=xterm-noclear
(теперь проверьте поведение less и, если все выполнено, добавьте строку директивы экспорта в ваш ~ / .profile)(Я скопировал эти инструкции непосредственно из отклоненного редактирования @ jah ответа Джорджа.)
источник
Я помню это так,
less -SEX
когда мне нужно вывести вывод на экран, но не хочу переносить строки. Например,docker ps | less -SEX
что это делает это:-S
-E
, вы можете использовать клавиши со стрелками для прокрутки-E
-X
Если вы не можете вспомнить
less -SEX
, у вас не так много надежды. Просто повторяйте Google каждый раз, когда я думаю.источник