Александър Иванов
cream в режим „expert“
27. За Windows
Преди всичко ви трябва cream. За Windows има стандартен инсталатор: изтегляте файла и го стартирате. По подразбиране програмата се инсталира в C:\Program Files\vim\vim73.
Стартирайте cream, изберете от менюто Settings > Preferences > Expert Mode…, за да получите достъп до функциите, които описвам тук. От Settings > Line Numbers може да махнете и номерацията на редовете. Остава да си сложите речниците за правописна проверка, както е описано в 26. Букви и правописна проверка, и сте готови с настройките на cream.
От всички програми филтри, за които става дума тук, Windows има само програмата sort. При това начинът, по който тя работи, е донякъде загадъчен — при настройка на системата (и на Command Prompt) уж за работа на български език тя подрежда съвсем безумно. С това, разбира се, човек може да се пребори, ама за какво му е, щом като уиндоуската програма sort не може повече от нещата, които разяснявам тук. Затова след малко ще ви покажа как да я заобиколим.
За щастие, всички програми филтри, чиято употреба аз показвам, са с отворен код и са пренесени на много операционни системи. За Windows има три такива популярни пакета с програми.
Единият, който препоръчвам да използвате, е cygwin. Той е доста големичък — при пълната си инсталация е близо 7 гигабайта. Това е прекалено много за нашите скромни нужди. Но ако го инсталирате с подразбиращите се настройки, той заема едни съвсем разумни 80–90 мегабайта, като предоставя всичко, каквото ни е нужно.
От страницата на cygwin изтеглете файла setup.exe (има два варианта — за 32- и за 64-битов Windows) и го стартирайте. Това е програма, която изтегля, инсталира или обновява пакетите чрез интернет. В даден момент тя ви предоставя списък с пакети — при инсталиране просто приемете подразбиращия се минимум. По-късно винаги може да добавяте или да премахвате програми.
Малко разяснения за инсталацията. Cygwin не пипа нищо, абсолютно нищо в настройките на Windows. Та може просто да го изтривате с Del през Windows Explorer. Затова няма и uninstall — просто няма.
При инсталацията се създават две директории. Едната по подразбиране е C:\cygwin — това е работната директория. Другата се създава там, където е стартирана програмата setup, и има малко странно име — интернетското представяне на адреса на сървъра, от който сте инсталирали програмите. Това е „отчетна“ директория за програмата setup. Ако искате да се отървете от cygwin, просто изтривате тези две директории.
В края на инсталацията ви се задава въпрос искате ли да се включи препратка в менюто и искате ли да се създаде икона на работния плот. Според мене е удобно да създадете и препратка към програмата setup на работния плот.
Ако не сте създали никакви препратки при инсталирането, може да стартирате C:\cygwin\Cygwin.bat. Това отваря конзола с bash — команден интерпретатор за линукс и за подобни на UNIX системи. Ама това има смисъл при „кросплатформена“ работа. Това ще рече да разработвате в Windows софтуер за линукс или обратното, линукски софтуер да го направите изпълним в Windows. С това няма да се занимаваме.
След инсталацията ще направим една-две хитрини. Първо, трябва да посочим пътя до нужните ни програми (например C:\cygwin\bin) в променливата PATH на Windows. При това трябва да го посочим преди всички останали „пътища“ — така ще прескочим уиндоуската програма sort.
В Windows XP това става така: от менюто Start изберете Settings > Control panel. Тук стартирайте System, изберете раздела Advanced — отдолу има бутон Environment Variables — задействайте го. Намерете Path в списъка System Variables и го маркирайте. С бутона Edit получавате възможност да редактирате. Внимателно поставете курсора в началото на реда и впишете C:\cygwin\bin; Внимание: завършвате с точка и запетая, тя е разделител между „пътищата“. И никакви шпации! Потвърдете всичко с бутона OK. Картинката навярно ще ви помогне.

В Windows 10 нещата са още по-объркани.
Стартирайте Control panel, изберете System and security, изберете System, внимателно разгледайте прозорчето, в раздела Computer name, domain, and workgroup settings, в дясно има рицарски щит и Change settings — чукнете върху това. Ще се отвори диалогов прозорец System properties. Тук изберете раздела Advanced. Тук има три секции, които също не ви интересуват — погледнете под тях бутона Environment variables….
И най-сетне достигаме до нещо смислено — в долното прозорче System variables изберете Path и използвайте клавиша Edit. Отваря се поредното прозорче Edit environment variables.
Тук изберете клавиша New — отваря се нов ред в списъка на директориите. Внимателно въведете името на директорията. Тя най-вероятно е C:\cygwin64\bin.
След като въведете нужната ви директория, използвайте клавиша Move up, за да я наредите на първо място. И накрая, разбира се, използвайте клавиша OK, за да потвърдите всичко това
На картинката отдолу съм се опитал да покажа крайния резултат:

Второ, ще направим една препратка към програмата sort. Отворете cream и препишете следния текст:
@echo off C: chdir C:\cygwin\bin set LANG=bg_BG C:\cygwin\bin\sort.exe %*
Запишете го с име sortbg.bat в C:\cygwin\bin. От тук нататък използвайте командата sortbg вместо sort. Ще разполагате с почти прекрасно лексиколожко подреждане по азбучен ред, съобразено с нашата практика. Повече подробности има в документацията на Cygwin, вижте раздела Internationalization.
Не е необходимо да рестартирате Windows — може да започнете работа.
Забележка 1. Вместо awk използвайте командата gawk (GNU Awk). Всъщност и в Linux awk е само препратка към gawk. Или си направете препратка awk.bat, която да изнася LANG=bg_BG, както вече показах. Ако някоя друга програма от Cygwin не работи задоволително с български, приложете й същата хватка.
Забележка 2. Винаги може да стартирате отново setup.exe (от Cygwin) и да търсите и да добавяте програми. Сигурно ще ви е нужно да добавите пакета libiconv — той съдържа и програма iconv за прекодиране на текстови файлове: необходим за филолога инструмент.
Забележка 3. Какво кодиране на текста да използвате в Windows — стандартното за конзолата cp1251 или UTF-8? Престрашете се да използвате UTF-8. Cream работи прекрасно с UTF-8 (със cp1251 ще имате някои неприятни изненади), програмите от cygwin също си работят. Ще трябва само да редактирате sortbg.bat (и ако сте създали други подобни .bat файлчета) така: set LANG=bg_BG.UTF-8
От малка редакция ще се нуждае и макрокомандата glatcyr_win.vim. Вземете стринговете с буквичките за UTF-8 от glatcyr.vim (линукския вариант на програмката) и подменете с тях стринговете в glatcyr_win.vim. Само внимавайте да запазите отстъпите, в пайтън те са от значение.
Пък като ви омръзне да се борите с кодировките за текст в Windows, минете на линукс.
Забележка 4. (март 2019 г.) И днес многобайтовото кодиране на текст в Command Prompt на Windows е в „бета“ версия, тоест и разработчиците признават, че може да имате изненади. И наистина има.
Последната ми неприятна изненада с конзолата на Windows 10 беше, че при настройка на конзолата за кодировка UTF-8 (в Windows това е cp 65001) пакетният менажер conda на Anaconda при инсталиране на някои пакети оплесква пътищата, а оттам и цялата инсталация.
Затова ще повторя: линукс. Днес линукс е добрият избор за филолога изследовател.
Другият пакет е mingw. В него има раздел msys (Minimal System) и точно това ни е нужно. Изтеглете си инсталатора за Windows и го стартирайте. Когато стигнете до раздела Select Components, маркирайте msys (не е маркиран по подразбиране). След инсталацията прибавете пътя C:\MinGW\msys\1.0\bin, както беше посочено по-горе. Но това е наистина минимален пакет и много неща в него липсват, например програмата nl не е включена, липсва и iconv и пр. Възможно е да ги добавите отделно, ако си ги изтеглите в „насипно“ състояние от инициативата gnuwin32. Но в този случай аз не знам възможно ли е да се докара добро лексикографско подреждане. Ако някой знае, да пише тук.
В момента инсталиращият пакет на cream за Windows поставя gvim 7.3, който изисква библиотеката python26.dll, за да има достъп до пайтън. Потърсете в интернет и ще я намерите (например, на dll-files.com). Копирайте библиотеката в C:\WINDOWS\system32, стартирайте cream и проверете работи ли поддръжката на пайтън — вж. пример glatcyt.vim — един полезен макрос за vim на пайтън. Впрочем библиотеката python26.dll ще работи и без да сте инсталирали пайтън — тя просто е друга реализация на интерпретатора, пригодена да се използва в Windows като библиотека с динамично свързване.
Програмката glatcyt.vim се нуждаеше от малко преработка, за да тръгне на Windows — изтеглете си от glotta glatcyr_win.vim. Копирайте я в директорията C:\Program Files\vim\vim73\plugin, за да я зарежда cream автоматично, щом се стартира. Погледнете и Забележка 3. по-горе, ако искате да я пригодите за работа с кодировката UTF-8.
Друг полезен инструмент в Windows е FAR. FAR е конзолен файлов менажер с отворен код (прилича на епичния nc — Norton Commander), който много облекчава работата не само с файлове, но и с архиви. Достатъчно е просто да сложите курсорния ред върху архивен файл и да натиснете Enter — програмата го отваря, все едно е директория. Изобщо работата в конзолата през FAR е много облекчена. Работещите в линукс за тази цел си имат Midnight Commander (mc).