Linuxdoc Linux Questions
Click here to ask our community of linux experts!
Custom Search

7. Fintičky so slovenčinou

7.1. Zadávanie slovenských znakov vo Vim

http://www.kotelna.sk/keso/unix/vim.html

Ak nemôžete, alebo nechcete používať rozloženie kláves pre slovenčinu, ale potrebujete zadať pár našich znakov vo Vim, dá sa to urobiť pomocou príkazu imap. Jeho formát je

       :imap {lhs} {rhs}
      

{lhs} je postupnosť znakov, po ktorých zadaní (v krátkom časovom intervale) sa vypíše {rhs}.

Pre slovenčinu by sa dali využiť imap definície znakov typu

:imap =a á
:imap +c č
      

Ako vidno, je to niečo podobné ako compose sekvencie z kapitoly o klávesnici na konzole. Po zadaní týchto príkazov môžete aj so štandardným rozložením kláves zadávať vo vim znaky s diakritikou. Tu je kompletný zoznam imap definícií pre slovenskú diakritiku. Uložte ho do súboru napríklad sk.vim a vo Vim ho načítate príkazom

:source sk.vim
      
imap =a á
imap =A Á
imap +a ä
imap +A Ä
imap +c č
imap +C Č
imap +d ď
imap +D Ď
imap =e é
imap +e ě
imap =E É
imap +E Ě
imap =i í
imap =I Í
imap =l ĺ
imap =L Ĺ
imap +l ľ
imap +L Ľ
imap +n ň
imap +N Ň
imap =o ó
imap =O Ó
imap +o ô
imap +O Ô
imap "o ö
imap "O Ö
imap =r ŕ
imap =R Ŕ
imap +r ř
imap +R Ř
imap +s š
imap +S Š
imap +t ť
imap +T Ť
imap =u ú
imap =U Ú
imap +u ů
imap +U Ů
imap "u ü
imap "U Ü
imap =y ý
imap =Y Ý
imap +z ž
imap +Z Ž
      

7.2. Odstránenie alebo nahradenie diakritiky v textových súboroch

7.2.1. sed

Ján 'judas' Tomka,

V prípade, že potrebujete z textového súboru odstrániť diakritické znamienka, môžete použiť program sed, pomocou ktorého nahradíte výskyt znaku s diakritikou jeho ekvivalentom bez nej.

Ak chcete odstrániť diakritiku úplne, musíte nahradiť výskyt všetkých znakov s diakritikou. Ak ale chcete len to, aby sa súbor zobrazoval správne pri prezeraní bez zavedeného fontu latin 2, stačí nahradiť len tie znaky, ktoré sa nezobrazujú správne pre štandardný font (spravidla latin 1).

Toto je príkaz, ktorý možno použiť pri vytváraní verzie súboru úplne bez diakritiky:

sed -e "s:á:a:g" -e "s:Á:A:g" -e "s:ä:a:g" -e "s:Ä:A:g" \
    -e "s:č:c:g" -e "s:Č:C:g" -e "s:ď:d:g" -e "s:Ď:D:g" \
    -e "s:é:e:g" -e "s:É:E:g" -e "s:ě:e:g" -e "s:Ě:E:g" \
    -e "s:í:i:g" -e "s:Í:I:g" -e "s:ĺ:l:g" -e "s:Ĺ:L:g" \
    -e "s:ľ:l:g" -e "s:Ľ:L:g" -e "s:ň:n:g" -e "s:Ň:N:g" \
    -e "s:ó:o:g" -e "s:Ó:O:g" -e "s:ô:o:g" -e "s:Ô:O:g" \
    -e "s:ö:o:g" -e "s:Ö:O:g" -e "s:ŕ:r:g" -e "s:Ŕ:R:g" \
    -e "s:ř:r:g" -e "s:Ř:R:g" -e "s:š:s:g" -e "s:Š:S:g" \
    -e "s:ť:t:g" -e "s:Ť:T:g" -e "s:ú:u:g" -e "s:Ú:U:g" \
    -e "s:ů:u:g" -e "s:Ů:U:g" -e "s:ü:u:g" -e "s:Ü:U:g" \
    -e "s:ý:y:g" -e "s:Ý:Y:g" -e "s:ž:z:g" -e "s:Ž:Z:g" \
    "Slovak-HOWTO.sgml" > "Slovak-HOWTO-nodiac.sgml"
        

7.2.2. cstocs

Braňo Katreniak

Keď sa zmieňujete o tom, ako sa dá odstrániť slovenčina z dokumentu, zdá sa mi vhodné spomenúť aj program cstocs. Je to milá utilitka štandardne dodávaná s TeXom. Umožňuje konverziu súborov prakticky všetkých možných kódových stránok medzi sebou navzájom, pričom jedna z možností je aj odstránenie diakritiky. Pričom sa mi to zdá pohodlnejšie ako sed.

7.2.3. recode

Ján 'judas' Tomka,

Existuje aj program recode, ktorý pravdepodobne tiež slúži na zmeny v kódovaní súborov. Určite ho použijete na tento cieľ, ak sa predtým nestane niektorá z nasledujúcich vecí:

  1. Prídete o oči pri čítaní man stránky, info manuálu a všetkého čo je o tomto -- inak určite užitočnom programe -- popísané.

  2. Prídete o nervy pri skúšaní všetkých možných kombinácií parametrov, volieb či argumentov pre tento nesmierne užitočný program.

  3. Prídete o počítač, keďže ho vyhodíte z okna po dvoch týždňoch psychického utrpenia, ktoré zažijete pri pokusoch s týmto extrémne užitočným programom.

Podľa všetkého by mal stačiť nasledovný príkaz:

recode l2 subor.txt
        
ale zdá sa, že to stačiť nebude. Latka na titul „Linuxový Guru“ sa posunula do závratných výšok, pretože -- aby ste sa stali jeho nositeľom -- musíte vedieť pomocou tohto programu previesť dokument v latin2 na latin1 alebo dokonca ASCII (a to už je pekný Saigon...)