Como "menos" mudar para o texto, depois de volta ao prompt? -- and-line campo com git campo com less camp askubuntu Relacionado O problema

How does “less” switch to the text, then back to the prompt?


7
vote

problema

português

Quando eu executo less em algum arquivo, o prompt desaparece e eu recebo o conteúdo do arquivo na tela. Em seguida, quando pressiono q , ele remonta ao prompt. Eu acho que less faz isso economizando o buffer de terminal atual, abrindo um novo buffer, saindo do arquivo para o novo, então quando fechado, descartando o novo buffer, e restaurando o antigo, mas eu não sabe o que este processo é chamado ou como isso faz isso.

Eu olhei em man less mas não encontrei nada. Eu tentei googling, mas não consegui encontrar nada útil, exceto que o comando screen pode fazer a mesma coisa com sessões shell.

Em última análise, estou perguntando porque quero git diff para usar um novo buffer em vez de imprimir inline. Eu já defini GIT_PAGER=less e git --paginate diff , mas eles não mudaram nada. E eu tenho uma solução alternativa, mas é um pouco longa: git diff --color=always | less -R

Após uma pesquisa, parece tput smcup e tput rmcup são comandos de alto nível para fazer a mesma coisa, provavelmente usando o abcdefghijklmn10 pacote.

english

When I run less on some file, the prompt goes away, and I get the contents of the file on screen. Then when I press q, it goes back to the prompt. I think less does this by saving the current terminal buffer, opening a new buffer, outputting the file into the new one, then when closed, discarding the new buffer, and restoring the old, but I don't know what this process is called or how it does this.

I looked in man less but didn't find anything. I tried googling it, but couldn't find anything useful, except that the screen command can do the same thing with shell sessions.

Ultimately, I'm asking because I want git diff to use a new buffer instead of printing inline. I've already set GIT_PAGER=less and git --paginate diff, but they didn't change anything. And I have a workaround, but it's a bit long: git diff --color=always | less -R

Update: After some research, it looks like tput smcup and tput rmcup are high-level commands to do the same thing, probably using the termcap package.

        
         
         

Lista de respostas

5
 
vote
vote
Melhor resposta
 

Todos ABCDEFGHIJKLMNABCDEFGHIJKLMN0 'S Funções de Gerenciamento de Ecrãs são em seu screen.c módulo. Na inicialização, a menos que seja em "No init" ( ABCDEFGHIJKLMNABCDEFGHIJKLMN2 ou ABCDEFGHIJKLMNABCDEFGHIJKLMN3 ) Modo, ele produz seu sc_init string, que é termcap 's ti String ( "inicialização do terminal" " ", que recebe o terminal pronto para a operação de controle de tela inteira, controlador de cursor). Na saída, ele produz seu sc_deinit string, que é termcap 's te string .

O comportamento que você está vendo é o comportamento padrão com screen.c0 , se screen.c1 não está configurado ( ou seja o abcdefghijklmn12 variável é desencadeada); Quando esse é o caso, screen.c3 é executado screen.c4 com o screen.c5 opções, que causam screen.c6 para desistir respeitar se o conteúdo Se encaixa em uma única tela, exibe cores e pule inicializando o terminal.

Para obter o comportamento que você está depois, defina screen.c7 para screen.c8 ou defina o screen.c9 -X0 Configuração para algo como -X1 (consulte -X2 para detalhes).

 

All of lessxe2x80x99s screen management functions are in its screen.c module. At startup, unless itxe2x80x99s in xe2x80x9cno initxe2x80x9d (-X or --no-init) mode, it outputs its sc_init string, which is termcapxe2x80x99s ti string (xe2x80x9cterminal initialisationxe2x80x9d, which gets the terminal ready for full-screen, cursor-controlling operation). At exit, it outputs its sc_deinit string, which is termcapxe2x80x99s te string.

The behaviour youxe2x80x99re seeing is the default behaviour with git, if less isnxe2x80x99t configured (i.e. the LESS variable is unset); when thatxe2x80x99s the case, git runs less with the FRX options, which cause less to respectively quit if the content fits on a single screen, display colours, and skip initialising the terminal.

To get the behaviour youxe2x80x99re after, set LESS to -R, or set the core.pager git setting to something like less -+X (see man git-config for details).

 
 
   
   

Perguntas relacionadas

5  Como posso construir um visualizador de syslog colorido e rolável com menos, cze, grep?  ( How can i build a scrollable colored syslog viewer with less ccze grep ) 
Eu gostaria de ver os logfiles com saída colorida, rolável e pesquisável. Como faço isso? Eu tentei less /var/log/syslog | ccze | grep error , mas não é ro...

2  Largura de linha muito longa  ( Line width too long ) 
Eu estou usando o Laravel e a execução php artisan route:list e quando pressionar ENTER, a saída é uma grade de colunas representando o nome da rota, a...

0  Pare de seguir e permita a rolagem  ( Stop following and allow scrolling ) 
less +F pode ser usado para "cauda" Siga um fluxo de entrada. Não consigo encontrar uma maneira de desativar este modo e retomar a rolagem manual. do home...

62  "Menos" não descompactam automaticamente arquivos gzipped  ( Less doesnt automatically decompress gzipped files ) 
em fedora / redéshat / centros o comando abcdefghgjklmnabcdefghijklmn0 parece detectar magicamente um arquivo gzipped e descompactá-lo na mosca, para que vo...

1  Como obter o longo prompt 'menos' com sudo?  ( How to get the long less prompt with sudo ) 
Adicionei o seguinte para o arquivo ABCDefghijklmnabcdefghijklmn8 para obter um prompt mais longo em less : TLS_CA_File=/etc/ssl/certs/ca-certificates.cr...

4  Como faço para manter o conteúdo da tela depois de desistir de menos ou mais?  ( How do i keep the screen contents after quitting less or more ) 
Depois de sair de ABCDEFGHIJKLMNABCDEFGHIJKLMN11 ou ABCDEFGHIJKLMNABCDEFGHIJKLMN12 , o conteúdo da tela é devolvido ao que eles eram antes. Isso acontece c...

4  Sintaxe destacando com menos, problemas com Lexer  ( Syntax highlighting with less trouble with lexer ) 
Eu instalei python-pygments e usá-lo para destaque de sintaxe com less como descrito por mankoff aqui Eu coloco uma função no meu .bashrc cless () ...

4  Como usar pymentre automaticamente com menos [duplicado]  ( How to use pygmentize automatically with less ) 
. Esta pergunta já tem respostas aqui : Sintaxe destacando com menos, problemas com Lexer ...

23  Qual é o pager padrão usado pelas páginas man?  ( What is the default pager used by man pages ) 
Qual é o padrão PAGER usado por páginas man. i, e o que o programa executa as páginas do homem? Parece alguns como more ou less . Tenho certeza que n...

3  Existe uma maneira de ler personagens para trás do final de um arquivo no terminal?  ( Is there a way to read characters backwards from the end of a file in the termin ) 
Por exemplo, menos permite ler linha por linha, a partir do começo. Existe um utilitário ou linha semelhante que poderia ser executado no terminal que poderia...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.