GNU Readline

GNU læselinje
Type Bibliotek
Forfatter Brian Fox
Udvikler Chet Ramay
Skrevet i C
Operativ system Forskellige
Første udgave 1989
nyeste version
Licens GNU General Public License
Internet side www.case.edu/php/chet…

GNU readline  er et gratis bibliotek til kommandolinjegrænseflade og linjebehandling. Skabt og vedligeholdt af GNU-projektet . Biblioteket distribueres under betingelserne i GNU General Public License . De seneste versioner af biblioteket giver dig mulighed for at arbejde med multibyte-kodninger ( Unicode ).

For eksempel, når du indtaster en linje ved hjælp af readline, flytter et tryk på Cb ( Ctrl+ B) markøren en position tilbage, mens Ctrl+ Fflytter markøren en position frem; ved at trykke på Ctrl+ Rkan du søge efter kommandoer blandt tidligere indtastede; brugen af ​​disse nøgler kommer fra et af GNU-projektets ældste og mest populære programmer, Emacs - teksteditoren (standard nøgletildelinger er beskrevet, men denne opgave kan ændres til at ligne den, der bruges i vi- editoren ). Derudover understøtter readline udklipsholderen og udfyldningen af ​​kommandonavnet ved de første tegn, når der trykkes på tasten . Readline er et bibliotek på tværs af platforme, hvilket betyder, at det giver mange programmer mulighed for at bevare den samme adfærd, når en bruger indtaster en streng, selv når de skifter til en anden platform. Tab ↹

Konfiguration og eksempler

Efter installation af readline vil det være nyttigt at tilpasse redigeringsmulighederne på kommandolinjen. For at gøre dette skal du redigere en af ​​konfigurationsfilerne:

Husk, at readline er et bibliotek, ikke et selvstændigt hjælpeprogram, så programmer, der bruger readline, kan have deres egne konfigurationsfiler, der definerer bibliotekets adfærd til særlige formål.

Konfigurationsfilformat

Tastaturgenveje

bind kommando .

Interessante eksempler på makroer

I konfigurationsfiler kan du, udover blot at omtildele redigeringsfunktioner til nye "tastaturgenveje", oprette temmelig ikke-trivielle makroer til at udføre specielle opgaver. Her er nogle eksempler:

Ikke-trivielle eksempler

Ud over at indtaste tekst og udføre redigeringsfunktioner kan taster tildeles til at udføre programmer eller scripts med det samme. Desuden kan du bruge teksten, der returneres under afviklingen af ​​programmer, til at indsætte den i den redigerede linje. For eksempel kan du programmere readline, så når du indtaster en bestemt kommando som dens argumenter, kan du interaktivt erstatte ved hjælp af funktionen Tab ↹ikke kun navnene på filer/mapper, men også visse parametre, der er specifikke for denne særlige kommando. For at konfigurere autofuldførelse skal du bruge kommandoen komplet .

Eksempelkode

Følgende kode er skrevet i C  :

#include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <readline/readline.h> #include <readline/history.h> int main () { char * input , shell_prompt [ 100 ]; for (;;) { // henter den aktuelle brugers sti snprintf ( shell_prompt , sizeof ( shell_prompt ), "%s:%s $ " , getenv ( "USER" ), getcwd ( NULL , 1024 )); // inputing... input = readline ( shell_prompt ); // hvis ( ! input ) bryde ; // sti autofuldførelse når tabulering ramte rl_bind_key ( '\t' , rl_complete ); // tilføjelse af det tidligere input til historien add_history ( input ); /* gør ting */ // Da opkaldet til readline() allokerer hukommelse, men ikke frigør (men returnerer), skal denne hukommelse returneres (frigivet). gratis ( input ); } }

Noter

  1. Ramey C. Readline-8.2 Release tilgængelig  (engelsk) - 2022.

Links