Com relativa frequência, me vejo querendo sair, less
mas deixo o que estava vendo na tela, para me referir novamente. Há alguma maneira de fazer isso? Soluções alternativas?
(Minha solução atual é encerrar e usar more
. Portanto, qualquer solução melhor do que isso é bem-vinda. O ideal seria algo que eu possa usar quando já estiver lá dentro less
, talvez com uma configuração de shell ou algum script.)
Minha área de trabalho é OSX, mas eu uso servidores RHEL e Ubuntu.
git diff
ougit log
) emless -X
ocupará o buffer de rolagem no meu terminal e removerá grande parte da saída anterior. Eu adoraria seless
pudesse sair com a última tela cheia de saída no momento da saída; ou seja, não mais do que uma página do buffer de rolagem seria tomada após sairless
. Alguma ideia?-R
geralmente é uma escolha mais segura do que-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
é sobre como atualizar a tela quando você se move por dentroless
.Respostas:
Esta é realmente uma função do emulador de terminal que você está usando (xterm, gnome-terminal, konsole, tela). Uma tela alternativa, ou altscreen, é iniciada quando programas como
less
ouvim
são chamados. Essa tela alternativa não possui buffer de histórico e sai imediatamente quando você sai do programa, retornando à tela original que restaura o histórico e o posicionamento do conteúdo da janela anterior.Você pode impedir o
less
lançamento em uma tela alternativa, passando o argumento "-X".less -X /path/to/some/file
Você também pode passar "-X" como uma variável de ambiente. Portanto, se você estiver usando
bash
, coloque-o em~/.bashrc
:No entanto, isso desativa a inicialização e a desinicialização do termcap (capacidade do terminal); portanto, outras exibições quando você usa
less
podem aparecer.Outra opção seria usar
screen
e definir a opçãoaltscreen off
no seu~/.screenrc
.less
não limpará a tela e deve preservar a formatação da cor. Presumivelmentetmux
, terá a mesma opção.Esta entrada de blog descreve o problema e oferece algumas soluções diferentes específicas para cada caso
gnome-terminal
com sucesso.fonte
git log
(e provavelmente outros comandos coloridos) está bagunçada.alias les="/usr/bin/less -X"
git log
problema acima:export LESS="-r -X"
. (Sem idéia do que os efeitos colaterais do que são ...)git
define aLESS
variável comoFRSX
se ela estiver desabilitada ao executar o pager, para que você possa deixarLESS
desabilitada eless
executará automaticamente com-FRSX
. Procurecore.pager
emgit-config(1)
para mais informações.A solução de George não funcionou para mim, mas funcionou (a partir da entrada do blog vinculada em sua resposta).
$ infocmp -I xterm > ~/xterm-noclear.src
Editar ~ / xterm-noclear.src
altere o nome na segunda linha de 'xterm' para 'xterm-noclear' ou o que mais lhe convier (também altere 'xterm-debian' se estiver presente)
remova as instruções 'smcup' e 'rmcup' (por exemplo, "smcup = \ E [? 1049h" e "rmcup = \ E [? 1049l")
$ mkdir ~/.terminfo
$ tic ~/xterm-noclear.src
(x / xterm-noclear deve aparecer no seu diretório ~ / .terminfo)$ export TERM=xterm-noclear
(agora verifique o comportamento de less e, se estiver satisfeito, adicione a linha da diretiva de exportação ao seu ~ / .profile)(Copiei essas instruções diretamente da edição rejeitada por @ jah da resposta de George.)
fonte
A maneira como me lembro disso é
less -SEX
quando preciso despejar a saída na tela, mas não quero que as linhas sejam quebradas. Por exemplo, odocker ps | less -SEX
que isso faz é o seguinte:-S
-E
, poderá usar as teclas de seta para rolar-E
-X
Se você não consegue se lembrar
less -SEX
, não há muita esperança para você. Apenas re-google cada vez que eu acho.fonte