As alterações recentes na documentação mencionam uma maneira diferente de remover uma opção padrão para less(sendo "opções padrão" FRSX).
Para esta pergunta, isso seria (git 1.8+)
git config --global --replace-all core.pager 'less -+F -+X'
Por exemplo, Dirk Bester sugere nos comentários :
export LESS="$LESS -FRXK"
para que eu fique com diff colorido ao Ctrl-Csair de less.
Wilson F menciona nos comentários e em sua pergunta que:
less suporta rolagem horizontal; portanto, quando as linhas são cortadas, menos desativa a opção fechar uma tela para que o usuário ainda possa rolar o texto para a esquerda para ver o que foi cortado.
Essas modificações já estavam visíveis no git 1.8.x, conforme ilustrado em " Sempre use o pager paragit diff " (consulte os comentários). Mas a documentação acabou de ser reformulada ( para git 1.8.5 ou 1.9, quarto trimestre de 2013 ).
Visualizador de texto para uso dos comandos Git (por exemplo, 'less').
O valor deve ser interpretado pelo shell.
A ordem de preferência é:
- a
$GIT_PAGERvariável de ambiente,
- então
core.pagerconfiguração,
- em seguida
$PAGER,
- e, em seguida, o padrão escolhido no momento da compilação (geralmente 'menos').
Quando a LESSvariável de ambiente está desabilitada, o Git a define FRSX
(se LESSa variável de ambiente estiver definida, o Git não a altera).
Se você deseja substituir seletivamente a configuração padrão do Git LESS, pode definir core.pagerpara, por exemploless -+S .
Isso será passado para o shell pelo Git, que traduzirá o comando final para LESS=FRSX less -+S. O ambiente diz ao comando para definir a Sopção de cortar linhas longas, mas a linha de comando redefine o padrão para dobrar linhas longas.
Consulte commit 97d01f2a para obter o motivo por trás do novo texto da documentação:
config: reescrever a core.pagerdocumentação
O texto menciona core.pagere GIT_PAGERsem fornecer uma imagem geral da precedência. Peça uma descrição melhor da git var(1) documentação.
O uso do mecanismo para permitir arquivos de configuração globais, por repositório e por todo o sistema não se limita a essa variável específica. Remova-o para esclarecer o parágrafo.
Reescreva a parte que explica como a variável de ambiente LESSé definida como o valor padrão do Git e como personalizá-la seletivamente.
Nota: commit b327583 ( Matthieu Moymoy , abril de 2014, para git 2.0.x / 2.1, Q3 2014) removerá o S por padrão:
pager: remova 'S' de $ LESS por padrão
Por padrão, o Git usado para definir $LESSa -FRSXse $LESSnão foi definido pelo usuário.
Os FRXsinalizadores realmente fazem sentido para o Git ( Fe, Xàs vezes, o Git de saída canaliza para menos é curto, e Rporque o Git canaliza saída colorida).
A Sbandeira (cortar linhas longas), por outro lado, não está relacionada ao Git e é uma questão de preferência do usuário. O Git não deve decidir se o usuário altera LESSo padrão .
Mais especificamente, o Ssinalizador prejudica os usuários que revisam código não confiável em um pager, pois um patch é parecido com:
-old code;
+new good code; [... lots of tabs ...] malicious code;
pareceria idêntico a:
-old code;
+new good code;
Os usuários que preferem o comportamento antigo ainda podem definir a variável de ambiente $ LESS como -FRSXexplicitamente, ou definir core.pager como ' less -S'.
A documentação irá ler:
O ambiente não define a Sopção, mas a linha de comando, instruindo menos para truncar linhas longas.
Da mesma forma, definir core.pagercomo less -+Fdesativará a Fopção especificada pelo ambiente na linha de comando, desativando o " quit if one screen" comportamento de less.
É possível ativar especificamente alguns sinalizadores para comandos específicos: por exemplo, definir pager.blamepara less -Sativar o truncamento de linha apenas para git blame.
core.pager 'less -+F -+X'seria uma maneira mais recente de remover essas opções. Veja minha resposta abaixo .