Кіріспе

Көп файлдық мәтін редакторы

Sam – құрылымдық тұрақты өрнектерге негізделген көп файлдық мәтін редакторы. Ол бастапқыда 1980-жылдардың басында Роб Пайк Белл зертханасында Кен Томпсон және басқа Unix әзірлеушілерінің көмегімен Unix жүйесінде жұмыс істейтін Blit терезе терминалы үшін жасалған; кейіннен ол басқа жүйелерге көшірілді. Sam классикалық модульдік Unix стиліне сәйкес келеді. Ол ішкі құрылысы жағынан қарапайым, ал оның қуаты шағын командалық тілдің біріктірілуімен және қабықшамен интеграция арқылы кеңейтілуімен қамтамасыз етіледі.

Құрылымы мен ерекшеліктері

Sam екі синхронды бағдарлама ретінде құрастырылған: команда интерпретаторы және тышқанмен басқарылатын биттік карта терезе интерфейсі. Интерпретатордың командалар жиынтығы UNIX редакторы ed-дің үлгісімен жасалған және стандартты мәтіндік терминалдан редакторды басқару үшін қолданылуы мүмкін. Алайда, әдетте Sam өзінің графикалық пайдаланушы интерфейсі (GUI) терезесін, samterm-ді ұсынады, ол сонымен қатар ашылатын мәзірлер арқылы нұқу және басу операцияларын жүзеге асыруға мүмкіндік береді. Бұл екі процестік құрылым Sam-ге желілік хост жүйелеріндегі файлдарға, файлға қол жеткізу процесін қашықтан орындау арқылы, терезе интерфейсін жергілікті түрде іске қосып, баяу байланыстардағы кешігуді айналып өту арқылы қол жеткізуге мүмкіндік берді. Samterm өңделіп жатқан файлдарға және sam командаларын қабылдайтын тұрақты команда терезесіне терезелерді ұсынады. Көптеген әдеттегі өңдеу операциялары нұқу және басу интерфейсімен жылдам және табиғи түрде орындалады, ол командалық терезеде де жұмыс істейді. Бұл соңғы мүмкіндік командаларды кез келген басқа мәтін сияқты өңдеуге (және қайта жіберуге) мүмкіндік береді, бұл DMD 5620 терминалы интерфейсінен мұраға алған қасиет.

Командалық синтаксис

Sam командасының синтаксисі ed немесе ex синтаксисіне ұқсас, (құрылымдық) тұрақты өрнектерге негізделген шартты және циклдық функцияларды, сондай-ақ ауқымдарды қамтиды, тіпті осындай функциялар үшін ed синтаксисінің кейбір бөліктерін де бөліседі. Бірақ ed командалары жолға бағытталған болса, sam командалары таңдауға бағытталған. Таңдаулар – мәтіннің үздіріліссіз тізбектері (бірнеше жолдарды қамтуы мүмкін) және олар тышқанмен (мәтіннің бір бөлігін таңдау арқылы) немесе үлгіге сәйкестік арқылы көрсетіледі. Sam командалары мұндай таңдауларды негізгі деп қабылдайды, басқа Unix құралдары жолдарды қабылдағандай; сондықтан көпжолды және жолдың ішкі бөлігіндегі үлгілер sam арқылы ed, vi, AWK, Perl сияқты құралдар бүкіл жол үлгілерін басқаратындай оңай өңделеді. Бұл құрылымдық тұрақты өрнектер деп аталатын модель арқылы іске асырылады, ол берілген таңдау ішіндегі басқа (ішкі) таңдауларды алу үшін тұрақты өрнектерді сәйкестік бойынша рекурсивті түрде қолдана алады. Осылайша, sam командалар жиынтығын өте күрделі контекст бойынша анықталған мәтін бөліктеріне қолдануға болады. Sam негізгі мәтіндік өңдеу командалар жиынтығын бірнеше файлды өңдеуге дейін кеңейтеді, файл атауларын анықтау үшін ұқсас үлгіге негізделген шартты және циклдық командаларды ұсынады. Мәтінді өңдеу командаларының кез келген тізбегі әрбір осындай файлға бірлік ретінде қолданылуы мүмкін.

шексіз қайтару

Сэм кез келген өңдеу қатесін кері қайтару үшін "шексіз" қайтару мүмкіндігін қолдаған алғашқы мәтіндік редакторлардың бірі болды. Бұл мүмкіндік, Сэмнің өзінің командаларын оңай өңдеуге қолайлылығымен және, ең бастысы, оның кішкентай, ортогональды командалар жиынтығымен (бар болғаны 33 командадан тұрады) үйлеседі. Бұл бағдарламаның басқа, көбірек мүмкіндіктерге ие "қуатты редакторларға" қарағанда оқуды жеңілдетуге басымдық бергенін көрсетеді.

Қолдаушылар

Сэм – бірнеше көрнекті бағдарламашылардың бағалайтын мәтіндік редакторы. Кен Томпсон ұнатып пайдаланған алғашқы толық экранды редактор осы болды. Сэмді Бьярн Строструп, Брайан Керниган, Дуглас Макилрой және Том Дафф қолданды. Деннис Ричи, Роб Пайк және Расс Кокс сияқты басқалары sam сияқты командалық тілге ие acme редакторына көшті, бірақ тышқанмен бірнеше пернені бірдей басу және ашылған файлдарды автоматты түрде орналастыру сияқты қосымша мүмкіндіктері де бар. Sam-нің соңғы нұсқасы Plan 9 операциялық жүйесінің құрамында жазылды, бірақ Microsoft Windows, macOS және X Window System-ге арналған нұсқалары да қолжетімді.