Как & ldquo; меньше & rdquo; перейти к тексту, а затем вернуться к приглашению?

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

Я посмотрел в man less, но ничего не нашел. Я попытался найти его, но не смог найти ничего полезного, за исключением того, что команда screen может делать то же самое с сеансами оболочки.

В конечном счете, я спрашиваю, потому что я хочу, чтобы git diff использовал новый буфер вместо печати inline. Я уже установил GIT_PAGER=less и git --paginate diff, но они ничего не изменили. И у меня есть обходной путь, но он немного длинный: git diff --color=always | less -R

Обновление: после некоторого исследования, похоже, что tput smcup и tput rmcup являются высокоуровневыми командами, которые делают то же самое, вероятно, используя пакет termcap.

6
задан 8 December 2017 в 00:20

1 ответ

Весь из lessфункции управления экраном находятся в screen.c модуль. При запуске, если это не находится в “никаком init” (-X или --no-init) режим, это производит sc_init строка, которая является termcap ti строка (“терминальная инициализация”, которая готовит терминал к полному экрану, управляющей курсором операции). В выходе это производит sc_deinit строка, которая является termcap te строка.

Поведение, которое Вы видите, является поведением по умолчанию с git, если less не настроен (т.е. LESS переменная сброшена); когда это имеет место, git выполнения less с FRX опции, которые вызывают less соответственно выходить, если содержание соответствует на одном экране, цветах отображения и пропуске, инициализирующем терминал.

Для получения поведения, Вы после, набор LESS кому: -R, или набор core.pager git установка на что-то как less -+X (см. man git-config для деталей).

4
ответ дан 8 December 2017 в 00:20
  • 1
    Да. Это имеет опцию восстановления. Считайте функции. Я использовал его на Linux на миграции и на миграции XP-Win7 Победы. Удостоверьтесь, что Вы используете it' s резервное копирование, которое создаст файл, из которого Вы восстанавливаете. – bioShark 25 May 2012 в 00:11
  • 2
    Да. Это имеет опцию восстановления. Считайте функции. Я использовал его на Linux на миграции и на миграции XP-Win7 Победы. Удостоверьтесь, что Вы используете it' s резервное копирование, которое создаст файл, из которого Вы восстанавливаете. – bioShark 25 May 2012 в 00:11
  • 3
    Да. Это имеет опцию восстановления. Считайте функции. Я использовал его на Linux на миграции и на миграции XP-Win7 Победы. Удостоверьтесь, что Вы используете it' s резервное копирование, которое создаст файл, из которого Вы восстанавливаете. – bioShark 25 May 2012 в 00:11
  • 4
    Да. Это имеет опцию восстановления. Считайте функции. Я использовал его на Linux на миграции и на миграции XP-Win7 Победы. Удостоверьтесь, что Вы используете it' s резервное копирование, которое создаст файл, из которого Вы восстанавливаете. – bioShark 25 May 2012 в 00:11
  • 5
    Да. Это имеет опцию восстановления. Считайте функции. Я использовал его на Linux на миграции и на миграции XP-Win7 Победы. Удостоверьтесь, что Вы используете it' s резервное копирование, которое создаст файл, из которого Вы восстанавливаете. – bioShark 25 May 2012 в 00:11
  • 6
    Да. Это имеет опцию восстановления. Считайте функции. Я использовал его на Linux на миграции и на миграции XP-Win7 Победы. Удостоверьтесь, что Вы используете it' s резервное копирование, которое создаст файл, из которого Вы восстанавливаете. – bioShark 25 May 2012 в 00:11

Другие вопросы по тегам:

Похожие вопросы: