Александър Иванов
cream в режим „expert“
в) Списък от думи (лекси)
Пак няма да обсъждаме какво е дума. Ще приемем, че шпацията или началото/краят на реда дели текста на думи. Очевидно трябва просто да заменим всички шпации с управляващия символ за нов ред:
:%s: :\r:g
Това е всичко — текстът ви е преписан като списък от лекси и единствените редове, които не са празни и в които няма букви, съдържат тирета. Големите тирета! Не дефиси.
При тиретата има два случая.
Първо, тирето въвежда пряка реч. Значи то е било в началото на абзаца, а сега е непосредствено след празен ред. Аз обикновено свързвам такова тире със следходната дума, тоест поставям го пред следходната дума, разделено с шпация:
:%s:\n\n-\n:\r\r- :
В израза за заместване след тирето има шпация.
Второ, тирето е било вътре в абзаца, значи сега пред него няма празен ред, а дума. В този случай е разумно тирето да се препише след предходната дума, пак разделено от нея с шпация:
:%s:^\(.\+\)\n-:\1 -:
Сега може да отстраните и празните редове — те си свършиха вече работата.
Коментар: Това „списъчно“ представяне на текста е основна форма, изходен материал за повечето глотометрични изследвания. От една страна, контекстът е напълно запазен, а от друга страна, имате възможност да отбелязвате каквато си поискате глотометрична характеристика. Освен това „списъчното“ представяне на текста е суровият материал за всякакви речници — фреквентни, рангови, пък ако щете и за тълковни и многоезични.
Затова аз съм направил програмката gtext2list.py в glotta — тя има и някои допълнителни възможности.