GNU readline | |
---|---|
Tip de | Bibliotecă |
Autor | Brian Fox |
Dezvoltator | Chet Ramay |
Scris in | C |
Sistem de operare | Variat |
Prima editie | 1989 |
ultima versiune |
|
Licență | Licență publică generală GNU |
Site-ul web | www.case.edu/php/chet… |
GNU readline este o bibliotecă gratuită pentru interfața de linie de comandă și procesarea liniei. Creat și întreținut de Proiectul GNU . Biblioteca este distribuită în conformitate cu termenii GNU General Public License . Cele mai recente versiuni ale bibliotecii vă permit să lucrați cu codificări pe mai mulți octeți ( Unicode ).
De exemplu, când introduceți o linie folosind readline, apăsarea Cb ( Ctrl+ B) mută cursorul cu o poziție înapoi, în timp ce Ctrl+ Fmută cursorul cu o poziție înainte; apăsarea Ctrl+ Rvă permite să căutați comenzi printre cele introduse anterior; utilizarea acestor taste provine de la unul dintre cele mai vechi și mai populare programe ale proiectului GNU, editorul de text Emacs (sunt descrise asignările implicite ale tastelor, dar această atribuire poate fi modificată pentru a fi similară cu cea utilizată în editorul vi ). În plus, readline acceptă clipboard-ul și completarea numelui comenzii la primele caractere când este apăsată tasta Tab ↹. Readline este o bibliotecă multiplatformă, ceea ce înseamnă că permite multor programe să păstreze același comportament atunci când un utilizator introduce un șir, chiar și atunci când trece la o altă platformă.
După instalarea readline, va fi util să personalizați capacitățile de editare pe linia de comandă. Pentru a face acest lucru, trebuie să editați unul dintre fișierele de configurare:
Rețineți că readline este o bibliotecă, nu un utilitar independent, astfel încât programele care folosesc readline pot avea propriile fișiere de configurare care definesc comportamentul bibliotecii în scopuri speciale.
comanda bind .
În fișierele de configurare, pe lângă simpla reatribuire a funcțiilor de editare noilor „comenzi rapide de la tastatură”, puteți crea macrocomenzi destul de netriviale pentru a efectua sarcini speciale. Aici sunt cateva exemple:
Pe lângă introducerea textului și efectuarea funcțiilor de editare, tastele pot fi alocate pentru a executa imediat programe sau scripturi. Mai mult, puteți folosi textul returnat în timpul execuției programelor pentru a-l introduce în linia editată. De exemplu, puteți programa readline astfel încât, atunci când introduceți o anumită comandă ca argumente, să puteți înlocui interactiv folosind funcția Tab ↹nu numai numele fișierelor/directoarelor, ci și anumiți parametri specifici acestei comenzi particulare. Pentru a configura completarea automată, utilizați comanda completă .
Următorul cod este scris în 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 ]; pentru (;;) { // obținerea căii utilizatorului curent snprintf ( shell_prompt , sizeof ( shell_prompt ), " %s:%s $ " , getenv ( " USER " ), getcwd ( NULL , 1024 )); // introducerea... input = readline ( shell_prompt ); // dacă ( ! intrare ) rupe ; // autocompletarea căii când tabularea atinge rl_bind_key ( '\t' , rl_complete ); // adăugarea intrării anterioare în istoric add_history ( input ); /* fac lucruri */ // Deoarece apelul la readline() alocă memorie, dar nu eliberează (dar revine), această memorie trebuie returnată (eliberată). liber ( intrare ); } }Proiectul GNU | ||
---|---|---|
Poveste | ||
Licențe |
| |
software _ |
| |
Personalități |
| |
Alte subiecte |
|