Limpar a linha tem apenas uma relação indireta com a alteração das cores do terminal: se você alterar a cor background , muitos terminais (console Linux, rxvt, xterm e programas imitando um deles) irá colorir a área limpa do fundo usando essa cor.
less
usa algumas operações de limpeza, mas não \x1b[2K
. Lendo a fonte , ela usa vários recursos usando a interface termcap. As partes mais relevantes são descritas na página de manual terminfo (5) :
clr_bol el1 cb Clear to beginning
of line
clr_eol el ce clear to end of line
(P)
Ou seja, \x1b[K
e \x1b[K
, para el1
e el
, respectivamente. Não há capacidade de termcap convencional el2
e (a menos que você diga less
para apenas passar o conteúdo de um arquivo usando a opção -r
ou -R
), less
não enviará \x1b[2K
.
O mesmo é válido para more
, por exemplo, como no pacote util-linux
: ele usa apenas recursos do termcap. Ao contrário de less
, more
não tem opção para enviar caracteres não imprimíveis diretamente para o terminal.
Se você usa a opção -r
ou -R
de less
, é necessário ter em mente que é limitado : less
não sabe (ou se importa muito) o que essas fugas fazem. Na página de manual :
-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 as long lines being split in the wrong place.