GNU readline | |
---|---|
Typ | Knihovna |
Autor | Brian Fox |
Vývojář | Chet Ramay |
Zapsáno v | C |
Operační systém | Rozličný |
První vydání | 1989 |
Nejnovější verze | |
Licence | GNU General Public License |
webová stránka | www.case.edu/php/chet… |
GNU readline je bezplatná knihovna pro rozhraní příkazového řádku a zpracování řádku. Vytvořeno a spravováno projektem GNU . Knihovna je distribuována za podmínek GNU General Public License . Nejnovější verze knihovny umožňují pracovat s vícebajtovým kódováním ( Unicode ).
Například při zadávání řádku pomocí readline se stisknutím Cb ( Ctrl+ B) přesune kurzor o jednu pozici zpět, zatímco Ctrl+ Fposune kurzor o jednu pozici dopředu; stisknutí Ctrl+ Rumožňuje vyhledávat příkazy mezi dříve zadanými; použití těchto kláves pochází z jednoho z nejstarších a nejpopulárnějších programů projektu GNU, textového editoru Emacs (výchozí přiřazení kláves jsou popsána, ale toto přiřazení lze změnit tak, aby bylo podobné tomu, které se používá v editoru vi ). Readline navíc podporuje schránku a výplň názvu příkazu na prvních znacích při stisknutí klávesy Tab ↹. Readline je multiplatformní knihovna, což znamená, že umožňuje mnoha programům zachovat stejné chování, když uživatel zadá řetězec, a to i při přechodu na jinou platformu.
Po instalaci readline bude užitečné upravit možnosti úprav na příkazovém řádku. Chcete-li to provést, musíte upravit jeden z konfiguračních souborů:
Mějte na paměti, že readline je knihovna, nikoli samostatný nástroj, takže programy, které používají readline, mohou mít své vlastní konfigurační soubory, které definují chování knihovny pro speciální účely.
příkaz bind .
V konfiguračních souborech můžete kromě prostého přeřazení editačních funkcí novým „klávesovým zkratkám“ vytvářet docela netriviální makra pro provádění speciálních úkolů. Zde jsou nějaké příklady:
Kromě zadávání textu a provádění funkcí úprav lze klávesám přiřadit okamžité spouštění programů nebo skriptů. Navíc můžete text vrácený během provádění programů použít k vložení do editovaného řádku. Můžete například naprogramovat readline tak, že když zadáte určitý příkaz jako jeho argumenty, můžete pomocí funkce interaktivně nahradit Tab ↹nejen názvy souborů / adresářů, ale také určité parametry specifické pro tento konkrétní příkaz. Chcete-li nastavit automatické dokončování, použijte příkaz complete .
Následující kód je napsán v 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 ]; pro (;;) { // získání cesty aktuálního uživatele snprintf ( shell_prompt , sizeof ( shell_prompt ), "%s:%s $ " , getenv ( "USER" ), getcwd ( NULL , 1024 )); // zadávání... input = readline ( shell_prompt ); // pokud ( ! vstup ) zlomit ; // automatické dokončování cesty, když se v tabulce stiskne rl_bind_key ( '\t' , rl_complete ); // přidání předchozího vstupu do historie add_history ( input ); /* dělat věci */ // Protože volání readline() alokuje paměť, ale neuvolňuje (ale vrací), musí být tato paměť vrácena (uvolněna). zdarma ( vstup ); } }Projekt GNU | ||
---|---|---|
Příběh | ||
licence |
| |
Software _ |
| |
Osobnosti |
| |
Další témata |
|