Лого на страниците (малко).

Заглавна страница > Четива > Четива за глотометрията > cream в режим „expert“ > 26. Букви и правописна проверка

 

Александър Иванов

cream в режим „expert“

26. Букви и правописна проверка

В текстови режим на cream, ако натиснете Alt+. (Alt и клавиша с точката), ще видите информация за буквата след курсора — показва се кодът й (code point според съвременната терминология в Unicode), представен в три вида: в десетичен, шестнадесетичен и осмичен запис на число.

Ако натиснете Alt+, (Alt и клавиша със запетаята), ще се отвори прозорче, в което може да въведете кода на символа. Символът се вписва в текста, където е курсорът. Това е един от начините да въведете символ, за който няма клавиш на клавиатурата. Кодът може да бъде въведен като десетичен, шестнадесетичен и осмичен запис на число — там си има кратка инструкция.

Техническа забележка: В Windows е предвиден общ механизъм за въвеждане на символи чрез кода им — при включен NumLock натискате и задържате Alt, набирате десетичния код на символа на калкулаторната клавиатура и като пуснете Alt, символът се вписва в позицията на курсора. И това работи във всички програми.

В линукс подобен механизъм не е предвиден, затова в различни програми символът може да се въведе чрез код по различен начин.

Ако използвате Alt+,, (Alt и две бързи натискания на запетайката), ще видите кодовата таблица, където може да откриете кода на необходимия ви символ. С Esc затваряте кодовата таблица и се връщате към текста.

В режим „експерт“ информация за символа под курсора може да се получи с клавишна последователност ga. Това, разбира се, работи и във vim, и в gvim. За композирани символи (буква + диакритичен знак) информацията, която се получава по този начин, е даже по-подробна.

В текстовия режим на vim и gvim символите могат да се въвеждат чрез кода си с Ctrl+V, така последователността ^Vu46d ще въведе в текста йотувана голяма носовка, а ^Vu0300 ще постави тежко ударение над предходната буква. За повече информация погледнете документацията на vim.

* * *

Vim си има хубава система за правописна проверка, която, разбира се, се наследява в cream. Само че инсталационните пакети обикновено поставят само файловете, необходими за работа с английския език.

Може да намерите необходимите файлове за правописна проверка на други езици — български, руски, немски, чешки и много други — на FTP-сървъра на vim: ftp://ftp.vim.org/pub/vim/runtime/spell/

Ако работите в Windows, ще ви трябват за български език файловете

bg.cp1251.spl

bg.cp1251.sug

Ако сте в линукс –

bg.utf-8.spl

bg.utf-8.sug

Ама не знаете как да свалите файла? Чукнете върху него с десен клавиш на мишката и изберете от контекстното меню нещо като Save Link As... или там най-близкото по значение, което предлага вашият браузър.

Файловете с разширение .spl (от англ. spell, spelling) съдържат списъка от думи, по който програмата извършва „правописната проверка“. Файловете с разширение .sug (от англ. suggestion) съдържат „подсказки“, предложения за замяна на евентуално грешно изписаната дума. Ако не използвате този механизъм, може да си спестите и файла с разширение .sug.

За да направите правописната корекция достъпна за всички потребители на компютъра ви, трябва като свръхпотребител да запишете тези файлове в директорията spell на съответната версия на vim/gvim. В Windows XP това би трябвало да е "C:\Program Files\vim\vim73\spell", в линукс най-вероятно това е /usr/share/vim/vim74/spell.

Зареждането на речник за правописна проверка в cream става с командата

:set spl=bg

spl е съкращение на командата spelllang. Може да заредите и повече речници — със запетайки, без шпации, например:

:set spl=bg,en

Зареждането на речниците не включва автоматично правописната проверка. Изпълнете

:set spell

за да я включите, и

:set nospell

за да я изключите.

И всичко това, разбира се, може да се изпълни на един ред с една команда set:

:set spl=bg,en spell

От vim 7.3 насетне съществува механизъм, който облекчава инсталирането на файловете, необходими за правописна проверка и на други езици. Опитайте просто да изпълните командите

:set spl=bg spell

Ако vim не намери речници за езика, който му задавате, той предлага да ги изтегли и да ги инсталира. Приемете предложението.

В линукс нещата стават лесно, но има два варианта. Ако сте стартирали cream (или vim) като свръхпотребител (root), файловете ще се запишат в системната директория на vim (например /usr/share/vim/vim74/spell) и ще са на разположение на всички потребители. Ако действията ги извършите като обикновен потребител, файловете ще се запишат в локалната ви директория /home/user/.vim/spell и ще са достъпни само за вас като потребител.

В Windows тази автоматика не работи с български език. Не съм се много задълбочавал, вероятно проблемът е в недоразумения с кодировките (encodings). Затова, ако не стане, копирайте си необходимите файлове „ръчно“, както вече описах.

В режима „експерт“ на cream при включена правописна проверка може да използвате следните команди:

]s — придвижва курсора на следващата неразпозната дума;

[s — придвижва курсора на предходната неразпозната дума;

z= — показва списък с предложения за замяна (ако сте инсталирали файла *.sug).

* * *

И в cream, и във vim може да създавате „потребителски речник“, това ще рече речник, в който да събирате „словоформи“, които вие определяте като правилни, но не са включени в стандартния речник. След като ги включите в „потребителския речник“, правописната проверка няма повече да ви ги отбелязва като грешни.

Пример: авторът, чийто текст обработвате, използва „еднаж“ вместо веднъж, „особно“ вместо особено и пр.

Всъщност специализирани текстове с много терминология или собствени имена ще ви създават повече проблеми: стандартният речник „знае“ Гьоте и словоформа, но „не е чувал“ за Екерман и за лекса.

И тук има два варианта:

а) Може да създавате общ потребителски речник, който ще бъде използван при всички текстове, които обработвате.

Затова създайте (ако я няма) директория .vim/spell и в нея създайте файл с подобно име:

touch .vim/spell/bg.cp1251.add

или, ако използвате UTF-8, както е в съвременните сглобки на линукс:

touch .vim/spell/bg.utf-8.add

touch е команда, която не съм ви показвал досега. Ако й посочите име на файл, който не съществува, тя създава нов „празен“ файл (с дължина 0), както е в примерите. Ако й посочите име на файл, който вече съществува, тя променя само датите на достъп до файла и на последната редакция на файла (access and modification times).

Явно е, че името на файла се формира както имената на другите речникови файлове:

<код на страната><точка><кодировка на текста (encoding)><точка><разширение>

Файлът с разширение .add е текстов файл, съдържащ списък от думи. Може да го отворите с редактора или да го копирате с друго име и да работите с него.

Но програмата реално работи с бинарен файл, чието име завършва на *.add.spl. Нормално тя го създава сама, но понякога се налага вие да го компилирате — по-долу ще дам пример.

б) Може да създавате потребителски речник за конкретен текст.

Обработвате, например, текст на Кирил Христов в директорията /works/Kiril_Hristov. Идете в тази директория и създайте речников файл:

touch bg.utf-8.add

Когато стартирате редактора обаче, трябва да го предупредите, че ще работите с „локален“ потребителски файл:

:set spellfile=./bg.utf-8.add

Без тази настройка редакторът ще използва общия потребителски файл във

.vim/spell/bg.utf-8.add,

ако съществува.

Да си представим, че искате да продължите обработката на друг текст от същия автор. Може би е разумно да използвате същия потребителски речник и да продължите да го „обогатявате“ с лексика от същия автор. Може да постъпите по два начина. Или преписвате в новата директория и двата файла (списъка от думи с разширение *.add и бинарния файл *.add.spl), или преписвате само списъка от думи, но през редактора го компилирате до бинарен файл:

:mkspell ./bg.utf-8.add.spl ./bg.utf-8.add

Обърнете внимание, че първо се задава името на бинарния файл, а след това на файла със списъка от думи.

Ако сте редактирали списъка от словоформи, трябва, разбира се, да компилирате отново бинарния файл, за да има ефект от редакцията. Програмата сигурно ще ви подсети, че трябва да използвате удивителния знак, за да създадете бинарния файл отново:

:mkspell! ./bg.utf-8.add.spl ./bg.utf-8.add

Командите:

Със zg включвате непознатата дума, на която е стъпил курсорът, в потребителския речник; със zw изключвате вече включена дума от потребителския речник. В cream, разбира се, това става в режим „експерт“.

Внимание! Когато използвате командата zw, за да премахнете вече включена дума от потребителския речник, думата не се изтрива от списъка с думи, а се обгражда с бинарен суфикс и префикс като премахната. Ама това означава, че файлът *.add престава да бъде текстов файл и става бинарен. Може да имате проблеми с изчитането му като текст — да трябва вие да определяте кодировката във файла. Което пък има допълнителни странични ефекти, ако го и запишете.

Затова, за да си нямате допълнителни грижи, внимателно обмисляйте дали да включите една дума в потребителския речни. Избягвайте, по възможност, употребата на командата zw.

Програмата vim/gvim/cream има още една скрита хубост — тя създава потребителски речник „на ум“, в оперативната памет. Командите zG и zW правят същото, което току-що описах — все едно работите с потребителски речник. Но, разбира се, след като стартирате програмата отново и изчетете същия текст, нищо от тези редактиращи действия не е запомнено. Ама е удобно понякога, пробвайте го.

Обсъждане:

Е, добре — общ потребителски речник или „частен“, за всеки текст?

Има смисъл да правите общ речник, ако работите много еднотипни текстове. Например, обработвате текстове в областта на биологията, или на химията, или на астрономията, където има много и често повтарящи се термини или собствени имена, невключени в общия речник.

Рисковано е в общ потребителски речник да включвате диалектна и остаряла лексика — нали ако включите по-старото изписване „близу“ в потребителския речник, това няма да ви се отбелязва повече като правописна грешка и в съвременен текст!? Омографията между остарели и диалектни думи и грешно изписани съвременни думи съвсем не е рядка, а осъзнаването й никак не е лесно.

Затова мисля, че за филолога и особено за филолога изследовател много по-полезно е да създава „частен“ потребителски речник, свързан с определен текст и с определен автор. Ако се наложи, винаги може да обединявате тези частни речници, може да допълвате словника на Речника на редките, остарелите и диалектните думи в литературата ни от XIX и XX век (БАН, София, 1974) и да правите наблюдения върху несъвършенствата на българската лексикография.

Страница: А. И.
Електронна поща
Дата на публикуване: 15.V.2014
Последна редакция: 27.IV.2023
Съобразено с
html5/css3