Кіріспе
GNU Readline – бұл бағдарламалық кітапхана, ол Bash сияқты командалық жол интерфейсі бар интерактивті бағдарламалар үшін жол бойынша өңдеу және тарих мүмкіндіктерін ұсынады. Қазіргі уақытта оны Чет Рами GNU жобасының бір бөлігі ретінде қолдайды. Ол пайдаланушыларға мәтіндік курсорды жылжытуға, командалар тарихында іздеуге, «өлтіру сақинасын» (көшіру/жапсыру буферінің кеңейтілген нұсқасы) басқаруға және мәтін терминалында табулысты аяқтауды пайдалануға мүмкіндік береді. Readline платформааралық кітапхана ретінде әртүрлі жүйелердегі қолданбаларға бірдей жол өңдеу әрекеттерін көрсетуге мүмкіндік береді.
GNU Readline is a software library that provides in line editing and history capabilities for interactive programs with a command line interface, such as Bash. It is currently maintained by Chet Ramey as part of the GNU Project. It allows users to move the text cursor, search the command history, control a kill ring (a more flexible version of a copy/paste clipboard) and use tab completion on a text terminal. As a cross platform library, readline allows applications on various systems to exhibit identical line editing behavior.
Өңдеу режімдері
Readline Emacs және vi өңдеу режимдерін қолдайды, олар пернетақтадан енгізілген мәліметтердің редактор командалары ретінде қалай қарастырылатынын анықтайды. Толығырақ қараңыз.
Emacs пернетақтасының перне тіркесімдері
Emacs редакциялау режиміндегі түйіндемелер Emacs мәтіндік редакторынан алынған. Кейбір жүйелерде , орнына , қолданылуы керек, себебі түйіндеме басқа түйіндемемен қақтығысады. Мысалы, Xfce терминалының эмуляторының терезесінде басу курсорды бір сөз алға жылжытпай, терминал терезесінің мәзіріндегі "Файл" дегенді белсендіреді, егер бұл эмулятор параметрлерінде өшірілмесе. : Курсор орнынан автоматты толықтыру. : Курсорды жол басына жылжытады ( кілтімен тең). : Курсорды бір таңбаға артқа жылжытады ( кілтімен тең). : Ағымдағы тапсырмаға псевдотерминал арқылы SIGINT сигналын жібереді, ол оны тоқтатып жабады. EOF белгісін жібереді, ол (опциямен өшірілмесе) ағымдағы қабықты жабады (exit командасына тең). (Егер ағымдағы жолда мәтін болмаса ғана) Егер ағымдағы жолда мәтін болса, ағымдағы таңбаны жояды (сонда кілтке тең). : (end) курсорды жол соңына жылжытады ( кілтімен тең). : Курсорды бір таңбаға жылжытады ( кілтімен тең). : Кері іздеуді тоқтатып, бастапқы жолға қайта оралады. : Алдыңғы таңбаны жояды (артқа жою сияқты). : Tab кілтіне тең. : Enter кілтіне тең. : Курсордан кейінгі жол мазмұнын тазалап, алмасу буферіне көшіреді. : Экран мазмұнын тазалайды (clear командасына тең). : (next) келесі команданы еске түсіреді (кілтпен бірдей). : Тарихтан табылған команданы орындайды және өңдеу үшін тарихтан ағымдағы жолға қатысты келесі жолды алады. : (previous) алдыңғы команданы еске түсіреді (кілтке тең). : (reverse search) іздеу үшін берілген таңбаларды қоса соңғы команданы еске түсіреді. Екіншісі іздеуге сәйкес келетін келесі бұрынғы команданы еске түсіреді. : Кері іздеудің келесі, соңғы командасына қайта оралу (терминалдан орындамауға сақтаныңыз, себебі бұл команда XOFF-ты да іске қосады). Егер XOFF параметрін өзгерткен болсаңыз, қайтару үшін қолданыңыз. : Алдыңғы екі таңбаны ауыстырады. : Курсордың алдындағы жол мазмұнын тазалап, алмасу буферіне көшіреді. : Егер келесі кіріс де басқару тізбегі болса, оны сөзсіз келтіреді (мысалы, * "^H" деп, сөзсіз артқа жоюды келтіреді). : Курсордың алдындағы сөзді жойып, алмасу буферіне көшіреді. : $EDITOR бағдарламасында ағымдағы жолды өңдеу, немесе анықталмаған болса vi. : Inputrc файлының мазмұнын оқып, онда табылған түйіндемелерді немесе айнымалыларды қосады. : Өңдеуді кері қайтару, әр жол үшін бөлек сақталады. : Bash-тің ағымдағы нұсқасы туралы ақпаратты көрсетеді. : Курсорды бұрынғы орнына ауыстырады. (C x, себебі x қиылысқан пішінде). : (yank) - курсор орнынан алмасу буферінің мазмұнын қосады. : Ағымдағы тапсырмаға SIGTSTP сигналын жібереді, ол оны тоқтатады. Фонда орындау үшін bg енгізуге болады. Оны фоннан немесе тоқтатудан қайтару үшін fg ['процесс аты немесе жұмыс ID'] (алдыңғы планға) енгізілуі мүмкін. : Өңдеуді кері қайтару, әр жол үшін бөлек сақталады. : (backward) курсорды бір сөзбен артқа жылжытады. : Курсор астындағы таңбаны үлкен әріпке ауыстырып, сөз соңына жылжытады. : Курсордан кейінгі сөзді кесіп алады. : (forward) курсорды бір сөзбен алға жылжытады. : Курсор орнынан бастап ағымдағы сөздің соңына дейін әрбір таңбаны кішкентай әріпке ауыстырады. : Өзгерістерді жояды және жолды тарихтан алған күйіне қайтарады. : Курсор орнынан бастап ағымдағы сөздің соңына дейін әрбір таңбаны үлкен әріпке ауыстырады. : Алдыңғы команданың соңғы аргументін (өткен команданың соңғы сөзін) енгізеді.
If there is text on the current line, deletes the current character (then equivalent to the key ). : (end) moves the cursor to the line end (equivalent to the key ). : Moves the cursor forward one character (equivalent to the key ). : Abort the reverse search and restore the original line. : Deletes the previous character (same as backspace). : Equivalent to the tab key. : Equivalent to the enter key. : Clears the line content after the cursor and copies it into the clipboard. : Clears the screen content (equivalent to the command clear). : (next) recalls the next command (equivalent to the key ). : Executes the found command from history, and fetch the next line relative to the current line from the history for editing. : (previous) recalls the prior command (equivalent to the key ). : (reverse search) recalls the last command including the specified characters. A second recalls the next anterior command that corresponds to the search
: Go back to the next more recent command of the reverse search (beware to not execute it from a terminal because this command also launches its XOFF). If you changed that XOFF setting, use to return. : Transpose the previous two characters. : Clears the line content before the cursor and copies it into the clipboard. : If the next input is also a control sequence, type it literally (e. g. * types "^H", a literal backspace.) : Clears the word before the cursor and copies it into the clipboard. : Edits the current line in the $EDITOR program, or vi if undefined. : Read in the contents of the inputrc file, and incorporate any bindings or variable assignments found there. : Incremental undo, separately remembered for each line. : Display version information about the current instance of Bash. : Alternates the cursor with its old position. (C x, because x has a crossing shape). : (yank) adds the clipboard content from the cursor position. : Sends the signal SIGTSTP to the current task, which suspends it. To execute it in background one can enter bg. To bring it back from background or suspension fg ['process name or job id'] (foreground) can be issued. : Incremental undo, separately remembered for each line. : (backward) moves the cursor backward one word. : Capitalizes the character under the cursor and moves to the end of the word. : Cuts the word after the cursor. : (forward) moves the cursor forward one word. : Lowers the case of every character from the cursor's position to the end of the current word. : Cancels the changes and puts back the line as it was in the history. : Capitalizes every character from the cursor's position to the end of the current word. : Insert the last argument to the previous command (the last word of the previous history entry).
GNU Readline лицензиясы ретінде GPL таңдау
GNU Readline – GNU General Public License (GPL) лицензиясы бойынша лицензияланған еркін бағдарламалық кітапхана болып ерекшеленеді. Еркін бағдарламалық қамтамасыз ету кітапханалары көбінесе GNU Lesser General Public License (LGPL) лицензиясы бойынша лицензияланады, мысалы, GNU C Library, GNU gettext және FLTK. LGPL лицензиясы бар кітапханаға сілтеме жасауды таңдаған қолданба жасаушы, қолданба үшін кез келген лицензияны пайдалана алады. Бірақ GPL лицензиясы бар кітапханаға сілтеме жасау, мысалы Readline, тарату кезінде бүкіл біріктірілген қолданбаның GPL лицензиясы бойынша лицензиялануын талап етеді, бұл GPL-дің 5-тармағына сәйкес келеді. FSF осы лицензияны бағдарламалық жасақтаманы GPL-ге көшіруге ынталандыру ниетімен таңдады. GNU Readline-нің copyleft шарттарына сәйкес лицензиясын өзгертуге мәжбүр болған қолданбаның маңызды мысалы – Common Lisp-тің іске асырылымы CLISP. 1987 жылы алғаш рет шығарылған, ол 1992 жылы CLISP-тің бастапқы авторларының бірі Бруно Хайбл мен Ричард Столлман арасындағы электрондық хат алмасудан кейін GPL лицензиясына көшті. Столлман CLISP-те readline-ді пайдалану Хайблдің CLISP-ті GPL-ге қайта лицензиялауын талап ететінін, егер ол readline-ді қолданатын CLISP-ті таратуды қаласа, атап көрсетті. Тағы бір жауап – кейбір жобаларда оны пайдаланбау, мәтіндік енгізуді өңдеу үшін қарапайым Unix терминал драйверін қолдану.