Stosunkowo często zdarza mi się, że chcę rzucić palenie, less
ale zostawiam to, co oglądałem na ekranie, aby odnieść się do nich. Czy jest na to jakiś sposób? Obejścia?
(Moje obecne obejście polega na wyjściu, a następnie użyciu more
. Więc każde obejście, które jest lepsze niż to, jest mile widziane. Ideałem byłoby coś, czego mogę użyć, gdy już jestem w środku less
, być może z ustawieniem powłoki lub skryptem).
Mój pulpit to OSX, ale używam serwerów RHEL i Ubuntu.
git diff
lub wgit log
)less -X
zajmie bufor przewijania w moim terminalu i eksmituje większość poprzednich wyników. Bardzo bym chciała, gdybyless
mogła wyjść z ostatniego ekranu wyjścia w momencie wyjścia; tzn. po zamknięciu nie zostanie pobrana więcej niż jedna strona bufora przewijanialess
. Jakieś pomysły?-R
jest to zwykle bezpieczniejszy wybór niż-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
chodzi o to, jak zaktualizować ekran, kiedy się poruszaszless
.Odpowiedzi:
Jest to w rzeczywistości funkcja emulatora terminala, którego używasz (xterm, gnome-terminal, konsola, screen). Alternatywny ekran lub altscreen uruchamia się, gdy wywoływane są programy takie jak
less
lubvim
. Ten altscreen nie ma bufora historii i wychodzi natychmiast po wyjściu z programu, przełączając się z powrotem do oryginalnego ekranu, który przywraca poprzednią historię zawartości i umieszczenie okna.Można zapobiec
less
uruchomieniu na ekranie altscreen, przekazując argument „-X”.less -X /path/to/some/file
Możesz także przekazać „-X” jako zmienną środowiskową. Więc jeśli używasz
bash
, umieść to w~/.bashrc
:Jednak to uniemożliwia inicjalizację i deinicjalizację termcap (zdolność terminalowa), więc inne widoki podczas używania
less
mogą się wydawać niepoprawne .Inną opcją byłoby użycie
screen
i ustawienie opcjialtscreen off
w swoim~/.screenrc
.less
nie wyczyści ekranu i powinien zachować formatowanie kolorów. Prawdopodobnietmux
będzie miał tę samą opcję.Ten wpis na blogu opisuje problem i oferuje różne rozwiązania specyficzne dla
gnome-terminal
różnych sukcesów.źródło
git log
(i prawdopodobnie innych kolorowych poleceń) jest zawalony.alias les="/usr/bin/less -X"
git log
emisji powyżej:export LESS="-r -X"
. (Nie mam pojęcia, jakie skutki uboczne , które są ...)git
ustawiaLESS
zmienną na,FRSX
jeśli jest rozbrojona, kiedy uruchamia pager, więc możesz po prostu pozostawićLESS
nieuzbrojony iless
automatycznie uruchomi się-FRSX
. Sprawdzićcore.pager
INgit-config(1)
, aby uzyskać więcej informacji.Rozwiązanie George'a nie działało dla mnie, ale to rozwiązanie zadziałało (z wpisu na blogu podanego w jego odpowiedzi).
$ infocmp -I xterm > ~/xterm-noclear.src
Edytuj ~ / xterm-noclear.src
zmień nazwę w drugim wierszu z „xterm” na „xterm-noclear” lub cokolwiek ci odpowiada (zmień również „xterm-debian”, jeśli jest obecny)
usuń instrukcje „smcup” i „rmcup” (np. „smcup = \ E [? 1049h” i „rmcup = \ E [? 1049l”)
$ mkdir ~/.terminfo
$ tic ~/xterm-noclear.src
(x / xterm-noclear powinien pojawić się w twoim katalogu ~ / .terminfo)$ export TERM=xterm-noclear
(teraz sprawdź zachowanie less i, jeśli jest zadowolony, dodaj wiersz dyrektywy eksportowej do swojego ~ / .profile)(Skopiowałem te instrukcje bezpośrednio z odrzuconej edycji odpowiedzi George'a @ jah).
źródło
Zapamiętałem to,
less -SEX
kiedy muszę zrzucić dane wyjściowe na ekran, ale nie chcę zawijać linii. Na przykładdocker ps | less -SEX
to:-S
-E
możesz przewijać za pomocą klawiszy strzałek-E
-X
Jeśli nie pamiętasz
less -SEX
, nie masz wiele nadziei. Po prostu ponownie google za każdym razem.źródło