Кіріспе
Бағдарламалық қамтамасыз ету мүмкіндігі Командалық жолды толықтыру (сондай-ақ, табулатураны толықтыру) – командалық жол интерпретаторларының кең таралған мүмкіндігі, онда бағдарлама жартылай терілген командаларды автоматты түрде толықтырады. Командалық жол интерпретаторлары – бұл пайдаланушыға графикалық интерфейсте (GUI) тышқанды басудан өзгеше, командалық интерфейсті (CLI) пайдаланып, командаларды енгізу арқылы негізгі операциялық жүйемен өзара әрекеттесуге мүмкіндік беретін бағдарламалар. Командалық жолды толықтыру пайдаланушыға команданың, бағдарламаның немесе файлдың бірінші бірнеше әрпін теріп, қалғанын толықтыру үшін толықтыру пернесін (әдетте, Tab) басуға мүмкіндік береді. Содан кейін пайдаланушы команданы орындау немесе файлды ашу үшін Enter немесе басады. Командалық жолды толықтыру бірнеше жағдайда пайдалы, мысалы, осы мақаламен бірге келген анимацияда көрсетілгендей. Жиі қолданылатын командалар, әсіресе ұзын атаулары бар командалар, аз санда ғана пернелерді басу арқылы қолжеткізіледі. Ұзын немесе жазуы қиын файл атауларын тек алғашқы бірнеше әрпін теріп, толықтыру пернесін басу арқылы енгізуге болады, бұл команданы немесе файл атауын толықтырады. Егер бірнеше мүмкін толықтырулар болса, кейбір командалық жол интерпретаторлары, әсіресе Unix қабықшалары, осы бірнеше әрпімен басталатын барлық мүмкін толықтыруларды тізімдейді. Пайдаланушы тағы бірнеше әріп теріп, қайтадан Tab пернесін басу арқылы жаңа, таңдалған тізімді көре алады, егер терілген әріптер әлі де түсініксіз болса, немесе команданы/файл атауын бос орынмен аяқтау арқылы толықтыра алады. Баламалы толықтыру түрі, кіріс түсініксіз болған жағдайда, барлық сәйкес нәтижелерді ауыстырып көрсетеді. Толықтырылатын элементтерге командалар, аргументтер, файл атаулары және нақты интерпретатор мен оның конфигурациясына байланысты басқа да объектілер кіруі мүмкін. Командалық жолды толықтыру әдетте тек интерактивті режимде жұмыс істейді. Яғни, оны скрипттерде немесе пакеттік файлдарда жартылай терілген командаларды толықтыру үшін шақыруға болмайды, тіпті толықтыру нақты болса да. "Табулатураны толықтыру" атауы командалық жолды толықтыру көбінесе Tab пернесін басу арқылы шақырылатынынан туындаған.
Command line completion (also tab completion) is a common feature of command line interpreters, in which the program automatically fills in partially typed commands. Command line interpreters are programs that allow a user to interact with the underlying operating system by typing commands at a command prompt using a command line interface (CLI), in contrast to pointing and clicking a mouse in a Graphical User Interface (GUI). Command line completion allows the user to type the first few characters of a command, program, or filename, and press a completion key (normally ) to fill in the rest of the item. The user then presses or to run the command or open the file. Command line completion is useful in several ways, as illustrated by the animation accompanying this article. Commonly accessed commands, especially ones with long names, require fewer keystrokes to reach. Commands with long or difficult to spell filenames can be entered by typing the first few characters and pressing a completion key, which completes the command or filename. In the case of multiple possible completions, some command line interpreters, especially Unix shells, will list all possible completions beginning with those few characters. The user can type more characters and press again to see a new, narrowed down list if the typed characters are still ambiguous, or else complete the command/filename with a trailing space. An alternate form of completion rotates through all matching results when the input is ambiguous. Completable elements may include commands, arguments, file names and other entities, depending on the specific interpreter and its configuration. Command line completion generally only works in interactive mode. That is, it cannot be invoked to complete partially typed commands in scripts or batch files, even if the completion is unambiguous. The name tab completion comes from the fact that command line completion is often invoked by pressing the tab key.
Тарих
Табты толықтыру есептеу тарихының басында пайда болды; алғашқы мысалдардың бірі SDS 940 үшін Беркли уақыт бөлісу жүйесінде болды, егер терілген жол түсініксіз болса, интерпретатор ештеңе жасай қоймайтын, бірақ егер жол түсініксіз болмаса, ол пайдаланушыдан ешқандай команда күтпестен автоматты түрде толықтыратын. Бұл мүмкіндік жиі кездесетін қателермен тиімді жұмыс істемеді, сондықтан екі жақты әсер ететін мүмкіндік болды. Бұл мүмкіндікті Tenex әзірлеушілері қайталады, бірақ маңызды өзгеріс енгізді: Tenex "қашқышты тану" әдісін қолданды, онда интерпретатор пайдаланушы Escape пернесін (осыдан аты шыққан) баспаса, автоматты толықтыруға тырыспайтын. Аталған мүмкіндік Беркли жүйесіндегі бағдарлама атауларынан Tenex жүйесіндегі бағдарлама атаулары мен файлдарға дейін кеңейтілді. Tenex-тің мұрагері TOPS 20 командалық жол толықтыруын командалық интерпретатордан операциялық жүйеге COMND JSYS жүйелік шақыру арқылы көшірді, осылайша басқа пайдаланушы бағдарламаларына да қолжетімді етті. Одан кейін Unix оны қабылдады.
Әртүрлі командалық жол интерфейстерінде аяқтау
Unix қабықшалары, соның ішінде Bash (көптеген Linux дистрибутивтеріндегі әдепкі қабықша) және ksh, сондай-ақ тағы да басқалары, жетілдірілген және баптауға болатын аяқтау мүмкіндіктерінің ұзақ тарихына ие. Bash бағдарламаланатын аяқтау, complete және compgen командалары 2.04 бета нұсқасынан бері қолжетімді және кемінде жол атауын және файл атауын аяқтау мүмкіндігін ұсынады. KornShell пайдаланушылары үшін файл атауын толықтыру EDITOR айнымалысының мәніне байланысты. Егер EDITOR vi деп белгіленген болса, атаудың бір бөлігін теріп, содан кейін , басыңыз. Егер EDITOR Emacs деп белгіленген болса, атаудың бір бөлігін теріп, содан кейін , басыңыз. Z қабығы (zsh) толыққанды бағдарламаланатын аяқтауды енгізді, бұл пайдаланушыларға қабықтың өзімен тікелей байланысы жоқ әртүрлі командалардың параметрлерін автоматты түрде аяқтауға мүмкіндік берді. Бұл қабықты барлық белгілі опциялардың анықтамаларымен және тиісті параметр түрлерімен қамтамасыз ету арқылы жүзеге асырылады. Бұл пайдаланушыға, мысалы, нақты файлдық жүйеден тек gzip архивтерін ғана аяқтауға және кіріс параметрлерімен үйлеспейтін файлдарды жіберуге мүмкіндік береді. Қазіргі заманғы zsh орнату бес жүзден астам команда үшін аяқтау анықтамаларымен бірге келеді. Tcsh файлдардың, командалардың және айнымалылардың атауларын аяқтау мүмкіндігін ұсынады. 'complete' кірістірілген командасы толыққанды бағдарламаланатын аяқтауды қамтамасыз етеді. Көздік код 'complete.tcsh' файлымен бірге келеді, онда оның аяқтау синтаксисінің көптеген мысалдары бар. Microsoft-тың объектіге бағытталған бағдарламалау және Microsoft .NET фреймворкіне негізделген кеңейтілген командалық қабықшасы Windows PowerShell дәстүрлі Unix қабықшаларына ұқсас қуатты және баптауға болатын аяқтау мүмкіндіктерін ұсынады. Windows NT негізделген жүйелердің командалық процессоры қарапайым аяқтауды қолдайды. Тек каталог атауларын сәйкестендіру үшін жеке пернелік байланыстыруды пайдалануға болады. файлдар мен каталогтардың атауын аяқтау символдарына рұқсат береді (^F және ^D әдепкі бойынша). Қосымша ақпарат алу үшін пайдаланыңыз. TweakUI файлдық және каталогтың атауын аяқтау үшін қолданылатын пернелерді конфигурациялау үшін пайдаланылуы мүмкін. MS-DOS командалық процессорында командалық жолды аяқтау болған жоқ: табулатор пернесін басу курсорды ғана жылжытады. Дегенмен, MS-DOS үшін әртүрлі кеңейтілген қабықшалар, мысалы 4DOS, FreeDOS нұсқасы немесе Enhanced DOSKEY.COM мүмкіндігі Unix стиліндегі табулатор аяқтауын қамтамасыз етеді. Far Manager файлдық басқару функцияларынан басқа Windows үшін командалар тарихын және жол аяқтауын ұсынады.