Se você quer uma boa alternativa ao comando less
do Unix/GNU, o ftxuiFileReader é uma boa alternativa.
É um software simples feito com C++ e a biblioteca FTXUI que nós já fizemos um vídeo que pode ser assistido no link abaixo:
Para instalar, lógico, você precisará das dependências básicas, são elas:
A biblioteca FTXUI é clonada automaticamente como dependência ao rodar o CMake!
Basta clonar, compilar e rodar:
Após isso haverá dentro do diretório build/
, que você rodou o make
, um binário com o mesmo nome do programa: ftxuiFileReader
. Basta rodá-lo e passar como argumento o caminho do arquivo que você deseja ler, exemplo:
Ainda dentro do diretório que você construiu: build/
você pode instalar no local desejado do seu sistema.
Mas, antes disso recomendo algumas alterações para uma melhor usabilidade do ftxuiFileReader, pois há alguns problemas que eu detectei, são eles:
Quando você executa e sai do programa, o cursor do seu terminal é modicado para sublinhado piscante(_
). No meu caso eu uso(e está definido por padrão) a linha vertical(|
) e não ficou legal.
Para solucionar isso, ainda dentro de build/
, eu editei o arquivo fonte main.cc
:
E antes do return EXIT_SUCCESS;
na função main()
que fica na linha 250 eu adicionei esse std::cout << "\x1b[\x35 q";
, ficando assim:
Isso serve para mim, pois esse x35
é justamente para retornar ao meu cursor linha vertical piscante. Você pode alterar conforme seja seu cursor, as alternativas são:
std::cout << "\x1b[\x31 q";
→ Muda para bloco piscante;std::cout << "\x1b[\x32 q";
→ Muda para bloco constante;std::cout << "\x1b[\x33 q";
→ Muda para sublinhado piscante;std::cout << "\x1b[\x34 q";
→ Muda para sublinhado constante;std::cout << "\x1b[\x35 q";
→ Muda para linha vertical piscante;std::cout << "\x1b[\x36 q";
→ Também muda para linha vertical constante;
As numerações, na veradade começam do
30
e podem ir até mais, no entanto, as modificações serão similares à essas! Caso queira, pode até declarar um:std::system("reset");
.
Feito isso, basta recompilar:
Lembrando que a recompilação demora bem menos, pois modificamos só um arquivo!
E para instalar, por exemplo, em: /usr/local/bin
, mais recomendado, também sugiro instalar com um nome mais Unix style(só com minúsculas e separado por traços em vez de capitalizações), exemplo: ftx-file-reader
:
Agora já pode até remover o repositório clonado, ex.: cd ../.. && rm -rf ftxuiFileViewer
e usar o comando ftx-file-reader
modificado ou o padrão(ftxuiFileReader
), se você modificou, exemplo lendo um arquivo main.cpp
:
Observação: Você pode sair do programa teclando a letra
q
, por exemplo, mas há um pequeno bug que pode exibir o caractere digitado ao sair, mas em forma de input detectável, exemplo para oq
:1R
. Para resolver isso, basta rolar pelo menos duas vezes a linha teclado a seta para baixo. Em resumo, para sair tecle a combinação de teclas:↓ ↓ q
.
Qualquer dúvida ou dica de melhoria(pegar o cursor padrão automaticamente e redefinir ao sair, por exemplo) acesse o repositório oficial.
Há outros softwares feitos com FTXUI que já publicamos aqui no blog, você pode ler clicando nos links abaixo: