>_Biblioteca Readline

GNU readline é uma biblioteca de software desenvolvida e mantida pelo projeto GNU e publicada sobre a licença GPL. Sua função é prover funcionalidades extras na edição de linha de comando, possibilitando completamento pela tecla Tab, movimentação do cursor para trás através de Ctrl+B e para frente com Ctrl+F. A maior parte destes atalhos imita o comportamento de outros softwares do projeto GNU, como por exemplo o Emacs e o Vi.

Um projeto que faz uso desta biblioteca é o interpretador de comandos bash. Ela é portável e permite que as aplicações mostrem comportamento semelhante em diversos sistemas operacionais.

Muitas críticas são feitas a biblioteca, uma inclusive partindo da própria página de manual da GNU readline que a descreve como “grande demais e lenta demais”. Outro problema é a licença GPL que obriga todo software que a utiliza a também se licenciar sob GPL. Há alternativas como as bibliotecas Tecla e Editline que são tidas como alternativas a GNU readline e estão sob licença BSD.

“OK, mas por que isso é importante?. Isso é importante porque a readline tem uma interface com o usuário bem simples, e muito prática. Quantas vezes você está na linha de comando e descobre que errou algo no meio do caminho e decide apagar a linha? O que você faz? Pressiona Backspace e fica segurando até a linha desaparecer? Ora, muito mais prático teclar Control-U. Esse atalho apaga a linha inteira rapidamente.

Bem, talvez apagar uma linha no prompt do shell não seja um exemplo de poder, mas o mesmo acontece com senhas… Você está digitando uma senha quando percebe que no meio do caminho errou algo… como o programa não mostra a senha sendo digitada, como você apaga ela e digita de novo aproveitando o mesmo prompt? Isso mesmo: Control-U!

Há uma série de outros atalhos poderosos relacionados a biblioteca readline, e, uma vez que você tenha decorado uns poucos, a agilidade na linha de comando e em programas relacionados acaba multiplicada. Esses atalhos são padronizados há tanto tempo que mesmo programas não compilados com a readline acabam implementando os mesmos.

  • Control-U: Apaga os caracteres do ponto onde está o cursor até o início da linha.
  • Control-K: Apaga os caracteres do ponto onde está o cursor até o fim da linha.
  • Control-A: Move o cursor para o início da linha.
  • Control-E: Move o cursor para o fim da linha.
  • Control-B: Move o cursor um caractere para trás. Extremamente útil quando está nesses terminais que não têm setinhas ou que não as implementam com os códigos corretos.
  • Control-F: Move o cursor um caractere para frente.
  • Control-D: Deleta o caractere sob o cursor (igual a teclar Del em um sistema DOS).
  • Control-H: Deleta o caractere anterior ao cursor (igual a teclar Backspace em um sistema DOS). Esse tenho usado muito ultimamente: minha tecla Backspace está com problemas…
  • Control-J: Termina a janela (ou, no caso de uma linha, termina a linha). No caso de um terminal, é como dar um ENTER.
  • Control-O: Insere uma nova linha na posição do cursor. Também, no caso de um terminal, é como dar um ENTER.
  • Control-L: Faz um refresh na tela. Muito útil quando você está um Terminal gráfico e a saída do programa anterior te deixa com um prompt no meio de um monte de caracteres.
  • Control-N: Move o cursor uma linha abaixo.
  • Control-P: Move o cursor uma linha acima.

 

>_Biblioteca Readline
Tagged on:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: