GNU Readline

GNU readline
Tyyppi Kirjasto
Tekijä Brian Fox
Kehittäjä Chet Ramay
Sisään kirjoitettu C
Käyttöjärjestelmä Eri
Ensimmäinen painos 1989
uusin versio
Lisenssi GNU yleinen julkinen lisenssi
Verkkosivusto www.case.edu/php/chet…

GNU readline  on ilmainen kirjasto komentoriviliittymää ja rivinkäsittelyä varten. Luonut ja ylläpitänyt GNU Project . Kirjastoa jaetaan GNU General Public License - lisenssin ehdoilla . Kirjaston uusimpien versioiden avulla voit työskennellä monitavuisten koodausten ( Unicode ) kanssa.

Esimerkiksi kun syötät riviä Readline-toiminnolla, Cb ( Ctrl+ B) -näppäimen painaminen siirtää kohdistinta yhden kohdan taaksepäin, kun taas Ctrl+ Fsiirtää kohdistinta yhden paikan eteenpäin; painamalla Ctrl+ Rvoit etsiä komentoja aiemmin syötetyistä; näiden näppäinten käyttö tulee yhdestä GNU-projektin vanhimmista ja suosituimmista ohjelmista, Emacs - tekstieditorista (oletusnäppäinmääritykset on kuvattu, mutta tämä määritys voidaan muuttaa samanlaiseksi kuin vi -editorissa käytetty ). Lisäksi readline tukee leikepöytää ja komennon nimen täyttöä ensimmäisten merkkien kohdalla, kun näppäintä painetaan . Readline on monialustainen kirjasto, mikä tarkoittaa, että sen avulla monet ohjelmat voivat säilyttää saman käyttäytymisen, kun käyttäjä syöttää merkkijonon, vaikka vaihdettaisiin toiseen alustaan. Tab ↹

Kokoonpano ja esimerkit

Readlinen asennuksen jälkeen on hyödyllistä mukauttaa komentorivin muokkausominaisuuksia. Voit tehdä tämän muokkaamalla yhtä määritystiedostoista:

Muista, että readline on kirjasto, ei itsenäinen apuohjelma, joten readlineä käyttävillä ohjelmilla voi olla omat asetustiedostonsa, jotka määrittävät kirjaston toiminnan erityistarkoituksiin.

Asetustiedostomuoto

Pikanäppäimet

bind -komento .

Mielenkiintoisia esimerkkejä makroista

Sen lisäksi, että yksinkertaisesti määrität muokkaustoimintoja uusille "pikanäppäimille" konfigurointitiedostoissa, voit luoda melko ei-triviaaleja makroja erikoistehtävien suorittamiseen. Tässä on joitain esimerkkejä:

Ei-triviaaleja esimerkkejä

Tekstin syöttämisen ja muokkaustoimintojen suorittamisen lisäksi näppäimet voidaan määrittää suorittamaan ohjelmia tai komentosarjoja välittömästi. Lisäksi voit käyttää ohjelmien suorituksen aikana palautettua tekstiä lisätäksesi sen muokatulle riville. Voit esimerkiksi ohjelmoida readlinen niin, että kun annat tietyn komennon sen argumenteiksi, voit vuorovaikutteisesti korvata funktiolla Tab ↹tiedostojen/hakemistojen nimien lisäksi myös tietyt tälle komennolle ominaiset parametrit. Voit määrittää automaattisen täydennyksen käyttämällä complete -komentoa .

Esimerkkikoodi

Seuraava koodi on kirjoitettu C  :llä:

#include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <readline/readline.h> #include <readline/history.h> int main () { char * input , shell_prompt [ 100 ]; varten (;;) { // nykyisen käyttäjän polun hakeminen snprintf ( shell_prompt , sizeof ( shell_prompt ), "%s:%s $ " , getenv ( "KÄYTTÄJÄ" ), getcwd ( NULL , 1024 )); // syötetään... input = readline ( shell_prompt ); // jos ( ! input ) tauko ; // polun automaattinen täydennys, kun taulukointi osui rl_bind_key ( '\t' , rl_complete ); // edellisen syötteen lisääminen historiaan add_history ( input ); /* tehdä asioita */ // Koska readline()-kutsu varaa muistia, mutta ei vapauta (mutta palauttaa), tämä muisti on palautettava (vapautettava). vapaa ( syöttö ); } }

Muistiinpanot

  1. Ramey C. Readline-8.2 -julkaisu saatavilla  (englanniksi) - 2022.

Linkit