utils:more
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior | ||
utils:more [2024/11/23 20:05] – [Noções básicas] inclusão do terminal hrcerq | utils:more [2025/01/08 23:23] (atual) – [Noções básicas] Primeira referência a ctags no artigo hrcerq | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
====== more ====== | ====== more ====== | ||
- | **more** é um paginador de terminal, originário do UNIX. | + | **more** é um paginador |
- | ===== História | + | ===== Noções básicas |
- | O comando | + | Para aprender a usar o __more__, |
- | O programa inicialmente tinha algumas limitações, | + | * **Avançar** |
- | ===== Padronização ===== | + | |
- | O paginador | + | O principal benefício de um paginador |
- | * [[https:// | + | Ao contrário do que pode parecer, avançar é um recurso mais básico e mais simples do que retroceder, e nem todos os terminais (ou emuladores de terminais) são capazes de oferecer a operação de retrocesso, obrigando um recarregamento do arquivo desde o início. Essa limitação também era comum nas primeiras versões de __more__, o que fez com que o programa __less__ ganhasse mais popularidade. |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | ===== Implementações ===== | + | Há diferentes maneiras de avançar e de retroceder. O movimento pode ser feito por páginas, por linhas ou por grupos de linhas, e pode ainda ser feito via rolagem ou via redesenho. Há ainda a possibilidade de mudar para pontos diferentes do texto fazendo pesquisas por termos ou navegando para locais previamente marcados. E ainda existe também a navegação para um ponto especificado (seja pelo número da linha ou por um percentual em relação ao tamanho total do arquivo). |
- | Em alguns sistemas tipo UNIX é comum que o paginador __more__ seja apenas uma referência à ferramenta __less__, com opções de compatibilidade com o padrão. Por este motivo, a lista de implementações abaixo fica bem restrita: | + | * **Anterior** e **Próximo** |
- | * [[https:// | + | Ao ser chamado, o programa __more__ pode receber como argumentos um ou mais arquivos de texto que serão abertos para a leitura paginada. Caso haja mais de um, a paginação dos arquivos é separada |
- | * [[https:// | + | |
- | __less__ (aqui usado como __more__): | + | É possível também acionar comandos internos do paginador |
- | * [[https:// | + | * **Buffer** |
- | Nesse sentido, __less__ pode ser entendido como uma das implementações de __more__, | + | Para paginar arquivos, __more__ |
- | Cabe dizer também que no OpenBSD há uma página de manual dedicada ao uso de __less__ em modo de compatibilidade com __more__: | + | * **Capacidades do terminal** |
- | * [[https:// | + | É possível acionar o programa __more__ a partir de diferentes tipos de terminal (ou emuladores de terminal). Cada um deles pode ter capacidades diferentes. Capacidades dizem respeito a cores suportadas, tamanhos de tela suportados, possibilidade ou não de retroceder no texto, possibilidades de formatação (negrito, itálico e sublinhado, por exemplo), dentre outras propriedades. |
- | Existem algumas diferenças quanto ao nível de aderência dessas implementações ao padrão POSIX, sendo o modo de compatibilidade do __less__ um dos mais aderentes (sobretudo se considerarmos o suporte a [[utils: | + | A depender das capacidades oferecidas pelo terminal, o programa __more__ poderá oferecer |
- | Além dos sistemas aderentes (totalmente ou parcialmente) ao padrão POSIX, outros sistemas também possuem o paginador __more__, com algumas diferenças inevitáveis de implementação, | + | * **Comando** |
- | * [[https:// | + | Uma vez com o programa aberto, é possível enviar alguns comandos para ele. Comandos como navegar para outro arquivo |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | ===== Noções básicas ===== | + | * **Editor** |
- | Para aprender a usar o __more__, | + | Uma vez com o programa |
- | **Avançar** e **Retroceder** | + | |
- | O principal benefício de um paginador de terminal | + | Na especificação POSIX, o termo " |
- | Ao contrário do que pode parecer, avançar é um recurso mais básico e mais simples do que retroceder, e nem todos os terminais (ou emuladores de terminais) são capazes de oferecer a operação de retrocesso, obrigando um recarregamento do arquivo desde o início. Essa limitação também era comum nas primeiras versões de __more__, o que fez com que o programa __less__ ganhasse mais popularidade. | + | * **Expressão regular** |
- | Há diferentes maneiras de avançar e de retroceder. O movimento pode ser feito por páginas, por linhas ou por grupos de linhas, e pode ainda ser feito via rolagem ou via redesenho. Há ainda a possibilidade de mudar para pontos diferentes do texto fazendo pesquisas por termos ou navegando para locais previamente marcados. E ainda existe também a navegação para um ponto especificado | + | Vide [[prog: |
- | **Anterior** e **Próximo** | + | |
- | Ao ser chamado, o programa __more__ pode receber como argumentos | + | Tratando-se de um paginador |
- | É possível também acionar comandos internos do paginador __more__, para navegar de volta para o arquivo anterior, ou pular o arquivo atual e passar para o próximo da lista. | + | Caracteres // |
- | **Capacidades do terminal** | + | O critério de divisão de linhas nesse caso é a presença de caracteres de fim de linha (// |
- | É possível acionar o programa __more__ a partir de diferentes tipos de terminal (ou emuladores de terminal). Cada um deles pode ter capacidades diferentes. Capacidades dizem respeito a cores suportadas, tamanhos de tela suportados, possibilidade ou não de retroceder no texto, possibilidades de formatação (negrito, itálico e sublinhado, por exemplo), dentre outras propriedades. | + | * **Marcador** |
- | A depender das capacidades oferecidas pelo terminal, o programa __more__ poderá oferecer mais ou menos recursos. | + | Posições dentro do texto podem ser marcadas, de modo que depois fique prático voltar para aquele ponto, se necessário. |
- | **Comando** | + | |
- | Uma vez com o programa aberto, | + | Uma página |
- | **Editor** | + | |
- | Uma vez com o programa | + | O paginador |
- | **Examinar** | + | |
- | Na especificação POSIX, o termo " | + | Uma posição dentro do paginador |
- | **Linhas** e **Colunas** | + | |
- | ... | + | __more__ é uma ferramenta interativa. O modo dessa ferramenta de mostrar que está à espera de um comando do usuário (como avançar ou retroceder no texto, por exemplo) é apresentando um //prompt// ao fim da página. |
- | **Marcador** | + | Esse //prompt// consiste em um texto destacado informando o nome do arquivo que está sendo lido, e possivelmente algumas informações adicionais (como o percentual de linhas desde o início do arquivo até o ponto atual em relação ao tamanho total do arquivo). |
- | ... | + | * **Redesenho** |
- | **Página** | + | Um redesenho da tela é o movimento de apagar o conteúdo atual da tela, e reescrever ou substituir por um texto diferente. |
- | ... | + | * **Rolagem** |
- | **Pesquisa** | + | Uma rolagem de tela é o movimento de adicionar linhas ao fim da página (quando está avançando) ou ao topo (quando está retrocedendo) e deslizar as demais linhas para cima (ao avançar) ou para baixo (ao retroceder). |
- | ... | + | * **Tags** |
- | **Posição** | + | //Tags// (do inglês, etiquetas) são uma maneira de rastrear definições (de funções, de tipos e outros objetos) dentro de um arquivo de código-fonte C ou Fortran (e opcionalmente de outras linguagens). Um arquivo específico guarda as referências dessas definições, |
- | ... | + | O arquivo em questão é gerado pelo utilitário [[utils: |
+ | ===== Iniciando e encerrando ===== | ||
- | **Prompt** | + | Iniciar o paginador __more__ é bastante simples. Basta acionar o programa, seguido (opcionalmente) pelos seus [[utils: |
+ | |||
+ | < | ||
+ | $ more arquivo1 arquivo2 arquivo3 | ||
+ | </ | ||
+ | |||
+ | Os arquivos não são abertos todos de uma vez. Apenas o primeiro deles estará visível na tela do terminal (ou seja, neste exemplo, apenas // | ||
+ | |||
+ | Antes de tratarmos sobre como navegar pelos arquivos abertos, precisamos falar sobre como encerrar o paginador. Basta digitar | ||
+ | |||
+ | Ao encerrar __more__, você notará que o texto continuará visível na tela. | ||
+ | |||
+ | <note tip> | ||
+ | A permanência do texto na tela pode ou não ser conveniente (costuma ser, quando o conteúdo do arquivo paginado é alguma informação útil para algum outro comando que deseja executar), mas caso não seja, você pode depois limpar a tela com __clear__ (ou **Ctrl** + **L**). | ||
+ | </ | ||
+ | |||
+ | ===== Comandos ===== | ||
+ | |||
+ | ... | ||
+ | ===== Trocando de arquivos ===== | ||
... | ... | ||
- | **Redesenho** | + | ===== Texto formatado ===== |
... | ... | ||
- | **Rolagem** | + | ===== Pesquisa de texto ===== |
... | ... | ||
- | **Tags** | + | ==== Expressões regulares ==== |
... | ... | ||
- | **Terminal** | + | ===== Marcadores ===== |
... | ... | ||
- | ===== Iniciando e encerrando | + | |
+ | ===== Passando para a edição | ||
... | ... | ||
+ | |||
+ | ===== História ===== | ||
+ | |||
+ | O comando __more__ surgiu no 3.0BSD, por estudantes da universidade de Berkeley (originalmente criado por Daniel Halbert, em 1978). O comando foi gradualmente aprimorado ainda nesse sistema e depois se espalhou para outros UNIX, e depois até mesmo para sistemas não UNIX. | ||
+ | |||
+ | O programa inicialmente tinha algumas limitações, | ||
+ | ===== Padronização ===== | ||
+ | |||
+ | O paginador __more__ é parte do padrão POSIX. Presente nas seguintes revisões: | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | ===== Implementações ===== | ||
+ | |||
+ | Em alguns sistemas tipo UNIX é comum que o paginador __more__ seja apenas uma referência à ferramenta __less__, com opções de compatibilidade com o padrão. Por este motivo, a lista de implementações abaixo fica bem restrita: | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | __less__ (aqui usado como __more__): | ||
+ | |||
+ | * [[https:// | ||
+ | |||
+ | Nesse sentido, __less__ pode ser entendido como uma das implementações de __more__, desde que usado em modo de compatibilidade (isto é, com o uso da variável de ambiente **LESS_IS_MORE**, | ||
+ | |||
+ | Cabe dizer também que no OpenBSD há uma página de manual dedicada ao uso de __less__ em modo de compatibilidade com __more__: | ||
+ | |||
+ | * [[https:// | ||
+ | |||
+ | Existem algumas diferenças quanto ao nível de aderência dessas implementações ao padrão POSIX, sendo o modo de compatibilidade do __less__ um dos mais aderentes (sobretudo se considerarmos o suporte a __ctags__). | ||
+ | |||
+ | Além dos sistemas aderentes (totalmente ou parcialmente) ao padrão POSIX, outros sistemas também possuem o paginador __more__, com algumas diferenças inevitáveis de implementação, | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// |
utils/more.1732403107.txt.gz · Última modificação: 2024/11/23 20:05 por hrcerq