GNU Readline

GNU readline
Típusú Könyvtár
Szerző Brian Fox
Fejlesztő Chet Ramay
Beírva C
Operációs rendszer Különféle
Első kiadás 1989
legújabb verzió
Engedély GNU általános nyilvános licenc
Weboldal www.case.edu/php/chet…

A GNU readline  egy ingyenes könyvtár a parancssori interfészhez és a sorfeldolgozáshoz. Létrehozta és karbantartja a GNU Project . A könyvtárat a GNU General Public License feltételei szerint terjesztik . A könyvtár legújabb verziói lehetővé teszik, hogy többbyte-os kódolással ( Unicode ) dolgozzon.

Például, amikor a readline használatával ír be egy sort, a Cb ( Ctrl+ B) megnyomásával a kurzor egy pozícióval vissza, míg a Ctrl+ Fegy pozícióval előre; Ctrla + gomb megnyomásával Rkereshet a korábban megadott parancsok között; ezeknek a billentyűknek a használata a GNU projekt egyik legrégebbi és legnépszerűbb programjából, az Emacs szövegszerkesztőből származik (az alapértelmezett billentyű-hozzárendelések le vannak írva, de ez a hozzárendelés megváltoztatható a vi szerkesztőben használthoz hasonlóra ). Ezenkívül a readline támogatja a vágólapot és a parancs nevének kitöltését az első karaktereknél a billentyű lenyomásakor . A Readline egy többplatformos könyvtár, ami azt jelenti, hogy sok programnak megőrzi ugyanazt a viselkedést, amikor a felhasználó karakterláncot ír be, még akkor is, ha másik platformra vált. Tab ↹

Konfiguráció és példák

A readline telepítése után hasznos lesz a parancssorban a szerkesztési lehetőségek testreszabása. Ehhez szerkesztenie kell az egyik konfigurációs fájlt:

Ne feledje, hogy a readline egy könyvtár, nem pedig egy önálló segédprogram, ezért a readline-t használó programok saját konfigurációs fájlokkal rendelkezhetnek, amelyek speciális célokra határozzák meg a könyvtár viselkedését.

Konfigurációs fájl formátum

Billentyűparancsok

bind parancs .

Érdekes példák makrókra

A konfigurációs fájlokban a szerkesztési funkciók új "billentyűparancsokhoz" való egyszerű hozzárendelése mellett létrehozhat meglehetősen nem triviális makrókat speciális feladatok elvégzésére. Íme néhány példa:

Nem triviális példák

A szövegbevitel és a szerkesztési funkciók mellett a billentyűk hozzárendelhetők a programok vagy parancsfájlok azonnali végrehajtásához. Sőt, a programok végrehajtása során visszaadott szöveggel beillesztheti a szerkesztett sorba. Például programozhatja a readline-t úgy, hogy amikor egy bizonyos parancsot ad meg argumentumaként, akkor interaktív módon helyettesítheti a funkcióval Tab ↹nemcsak a fájlok/könyvtárak neveit, hanem bizonyos, az adott parancsra jellemző paramétereket is. Az automatikus kiegészítés beállításához használja a teljes parancsot .

Mintakód

A következő kód C betűvel van írva  :

#include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <readline/readline.h> #include <readline/history.h> int main () { char * bemenet , shell_prompt [ 100 ]; mert (;;) { // az aktuális felhasználó elérési útjának lekérése snprintf ( shell_prompt , sizeof ( shell_prompt ), "%s:%s $ " , getenv ( "USER" ), getcwd ( NULL , 1024 )); // bevitel... input = readline ( shell_prompt ); // if ( ! bemenet ) szünet ; // elérési út automatikus kiegészítése, amikor a táblázás leüti az rl_bind_key -t ( '\t' , rl_complete ); // az előző bemenet hozzáadása az előzményekhez add_history ( input ); /* csinálj dolgokat */ // Mivel a readline() hívása memóriát foglal le, de nem szabadít fel (hanem visszatér), ezt a memóriát vissza kell adni (felszabadítani). szabad ( input ); } }

Jegyzetek

  1. Ramey C. Readline-8.2 kiadás  (angolul) – 2022.

Linkek