less under tmux trata as linhas envolvidas como linhas únicas, quebrando o paging

0

Em tmux (v1.8), usando less (v458) com um pipe ou arquivo que inclui linhas mais longas do que a largura do terminal e que começaram a causar problemas para mim no Ubuntu.

O pager inicialmente rola além da primeira linha, em vez de começar no topo. Quando tento rolar para trás, os caracteres de diferentes linhas correm juntos em um bloco sem novas linhas.

Às vezes, comandos como page up ( b ou <C-b> ) parecem pular passado ao final do arquivo, deixando um monte de linhas na parte inferior:

some-line
another-line
last-line-in-file
~
~
~
~
~
(END)

De lá, o pager nunca pode ser rolado de volta.

    
por mgiuffrida 21.01.2017 / 05:06

1 resposta

3

Eu percebi isso antes de terminar de postar: eu tinha aliased less to less -r para manter a cor, mas aparentemente isso estraga menos:

-r or --raw-control-chars
       Causes "raw" control characters to be displayed.  The  default  is  to
       display  control  characters  using the caret notation; for example, a
       control-A (octal 001) is displayed as  "^A".   Warning:  when  the  -r
       option is used, less cannot keep track of the actual appearance of the
       screen (since this depends on how the screen responds to each type  of
       control  character).   Thus, various display problems may result, such

Eu removerei esse alias ou tentarei usar -R , que só retém as seqüências de escape de cor ANSI e deve funcionar "na maioria dos casos".

Após algum tempo, less -R funcionou exatamente como eu queria e não causou problemas de exibição.

-R or --RAW-CONTROL-CHARS
       Like -r, but only ANSI "color" escape sequences are  output  in  "raw"
       form.   Unlike  -r,  the  screen appearance is maintained correctly in
       most cases.  ANSI "color" escape sequences are sequences of the form:

            ESC [ ... m

       where the "..." is zero or more color specification characters For the
       purpose  of  keeping  track  of  screen  appearance, ANSI color escape
       sequences are assumed to not move the cursor.  You can make less think
       that  characters other than "m" can end ANSI color escape sequences by
       setting the environment variable LESSANSIENDCHARS to the list of char‐
       acters  which  can end a color escape sequence.  And you can make less
       think that characters other than the standard ones may appear  between
       the ESC and the m by setting the environment variable LESSANSIMIDCHARS
       to the list of characters which can appear.
    
por 21.01.2017 / 05:06

Tags