Emacs a tři drobné tipy pro českého uživatele

And Now for Something Completely Different

Historicky první zápis na tomto blogu se týkal Linuxu. Nebyl ani tak myšlen jako regulérní příspěvek, spíš jen jako svého druhu test, co vše obnáší psaní jednoduchých blogových zápisků (asi každý blogger řešil otázku, jak napsat první blog post). Svůj blog beztak píšu spíš pro sebe, nemyslím, že by se byl někdo schopen vcítit na dálku do mých osobních prožitků. Proč taky?

Přesto bych se rád k podobnému tématu, jako bylo ono úvodní, občas vrátil a případného (hodně náhodného) čtenáře, který zároveň rád používá některý z volně šiřitelných programů (nejen pro Linux), upozornil na pár věci, jež by mu snad mohly někdy přijít vhod.

Ale teď už k tématu. Osobně velice nerad používám jakýkoliv „office“ program. Vzhledem k tomu, že doma nemám žádná MS Windows a s texty vytvářenými (a hlavně tištěnými) ve Wordu mám jen nejhorší zkušenosti, odjakživa jsem se snažil hledat alternativní metody tvorby a zpracování svých dokumentů. Snad každému, kdo se zajímá o svobodně dostupná softwarová řešení běžné práce na PC, není neznámý program LyX. Proti Wordu je nejen minimální ve svých systémových požadavcích, ale práce v něm mi osobně přijde mnohem logičtější, nemluvě o spolehlivosti a kvalitě tiskového výstupu (diplomovou či podobně rozsáhlou práci bych už ve Wordu či jiném podobném nástroji nikdy neriskoval; bohužel ani OpenOffice.org či LibreOffice na tom nejsou – v tomto ohledu – o mnoho lépe).

Tento zápisek však nebude o LyXu či práci s „office“ programy. Bude o editoru Emacs, respektive jeho menších úpravách či konfiguraci pro editaci českých textů. Nemám v úmyslu zde Emacs představovat, ani vysvětlovat základy práce v něm. Od toho jsou zde mnohem povolanější, na internetu lze nalézt obrovské množství nejrůznějších tutoriálů (včetně videí), dokonce i v samotném Emacsu je výukový „mód“ přímo obsažen. Nebudu se ani zdržovat vysvětlováním nejrůznějších konvencí pro psaní klávesových zkratek apod.; ty si případný náhodný čtenář jistě dohledá rád sám (pokud je už dávno nezná).

Na začátku mého potýkání se s Linuxem a jeho správou (pravidelně od roku 1997, ale stále jsem jen noob…) jsem se nechal strhnout vlnou nadšení šířenou českým linuxovým internetem pro editor Vim. Stal jsem se jeho uživatelem, ale jako řada jiných jsem v používání nikdy nepokročil příliš daleko. Stále jsem si říkal, někdy, příště, zítra… se jistě něco nového naučím. Samozřejmě k tomu nikdy nedošlo. Emacs naproti tomu byl pro mě (v důsledku vlastní neznalosti) behemot s prapodivným chováním a zbytečně složitým ovládáním.

Postupem času jsem však došel k přesvědčení, že Vim prostě není pro mě. Je to sice zřejmě nejlepší textový editor na světě (a sám jej stále používám na konzoli pro rychlou editaci souborů), ale je primárně určen pro celkem úzkou skupinu lidí – pro programátory a systémové administrátory. Ne že by nešel jinými lidmi používat i k jiným věcem, než jen k editaci programů a konfiguračních souborů. Získal jsem však osobní dojem, že jej efektivně dokáží využít pouze lidé se striktně technickým myšlením, kteří promýšlejí svou činnost – podobně jako šachisté – řadu kroků dopředu.

Můj styl myšlení i práce má však k takto organizovanému přístupu na hony daleko. Právě proto jsem občas hledal nějaké alternativy lépe odpovídající mému naturelu. Lenost kombinovaná s jistou chaotičností jako výchozí základ, na němž se pak vrší a kombinují další elementy mé povahy, především pak netechnické (respektive, ó hrůzo, humanitní) vzdělání (?) a celkový přístup. Vyzkoušel jsem řadu známých i méně známých editorů, ale pořád to nějak nebylo ono. Co víc, mou utkvělou ideou bylo, že by každý nástroj, který používám, měl mít obrovský potenciál nejrůznějších možností, které sice aktuálně nepotřebuji, ale mohly by se jednou hodit, a taky že by měl… mě prostě nějak… hm… prostě ve mně vyvolávat pocity jisté přitažlivosti, tajemna a prostoru pro kreativitu. (Chápu, že technicky založení v tomto místě definitivně odpadli v záchvatu smíchu…)

Samozřejmě byl mezi testovanými editory i Emacs. Na něm mě však trápila řada obtíží, od nemožnosti jednoduše rozchodit českou klávesnici, přes ošklivý vzhled až po některé detaily, jejichž zprovoznění nebo vyladění vyžadovaly více času a energie, než jsem byl ochoten vynaložit. Postupem času však byla naprostá většina nedostatků odstraněna, bohužel občas i za cenu jisté nekompatibility s předchozími „obezličkami“, řešícími především problémy s lokalizací.

V současné době používám poslední – zatím oficiálně nevydanou – verzi 24. I tento blogový zápisek vznikal v Emacsu, konkrétně v jeho rozšíření org-mode.

Typografické rozšíření

Prakticky na všech běžných textových editorech pro libovolnou platformu mě vždy vadila jedna věc – podobně jako Vim byly vytvořeny s ohledem na techniky a programátory, nikoli však s ohledem k potřebám kohokoli dalšího. S čestnou výjimkou právě Emacsu. Jde snad o jediný z běžných textových editorů, který je primárně určen pro tvorbu textů, spíše než programů či konfiguračních souborů.

Už v dřevních dobách internetu (a jeho „předchůdce“ BBS) mě štvala nejen absence diakritiky, ale i nedodržování základních typografických konvencí, zejména psaní českých uvozovek (případně apostrofů), ale i neodlišování pomlčky, spojovníku (rozdělovníku) a dalších „vymyšleností“ (např. elipsy). Programy typu Word jsou schopny některé z těchto symbolů vkládat automaticky (pokud jste však někdy viděli běžně produkované texty, tak víte, že ani vyspělá technika nedokáže zázraky), řadu jiných – méně běžných – jsou však uživatelé nuceni vkládat přes různé „mapy znaků“ nebo poměrně neefektivní (a špatně zapamatovatelné) klávesové zkratky.1 Většina lidí na nějaká pravidla jednoduše rezignuje, ví-li vůbec o jejich existenci.

Mou představou bylo mít textový editor, který řadu těchto znaků dokáže vkládat automaticky, případně po zadání snadno zapamatovatelné klávesové zkratky, pokud možno s minimálním časovým zpožděním. Tedy cosi jako Word/Writer, ale bez všech jejich nedostatků, který běží pod nejrůznějšími operačními systémy, přičemž jeho chování a konfigurace jsou víceméně všude stejné. A právě zde přichází ke slovu již několikrát zmíněný Emacs.

Nejprve jsem na emacsové wiki objevil typografické rozšíření typopunct.el. Ve stručnosti – toto rozšíření umožňuje vkládání pomlčky (–), spojovníku (-), českých uvozovek („“, případně ‚‘), francouzských uvozovek (»«) a elipsy (…) v podstatě automaticky, ale na rozdíl od Wordu či Writeru bez klasických officovských manýrů. (Například 1989–2011 bude vždy s pomlčkou, aniž bych si musel hlídat, zda se kancelářský program uráčí problém vyřešit automaticky, nebo ne.) Wiki také doplňuje možnosti typografického rozšíření o zápis dalších znaků a symbolů, například matematického znaménka minus (srovnej defaultní „-1“ s „−1“) apod.

Osobně mám ve svém konfiguračním souboru pro Emacs uvedeno:

;; Typogragické rozšíření (uvozovky, pomlčky, elipsa atd.)
(require 'typopunct)
(add-hook 'text-mode-hook 'typopunct-mode)

První řádek zavádí rozšíření do Emacsu (typicky z .emacs.d/site-lisp), druhý (alespoň doufám) zpřístupňuje rozšíření automaticky pro všechny módy využívající textový mód (tedy například i pro již zmíněný org-mode).

Všem zájemcům o rozšíření samozřejmě doporučuji projít si příslušnou stránku na wiki.

České řádkové třídění

Ačkoli je Emacs už „z výroby“ připraven pracovat v mnohojazyčném prostředí a plně podporuje Unicode, některé věci týkající se lokalizace k plné spokojenosti ještě vyřešeny nejsou. Jednou z funkcí, kterou občas využívám, je řádkové třídění dle abecedy. To sice v Emacsu funguje (příkaz sort-lines), bohužel však bez respektování českého prostředí. Což v praxi znamená, že „ch“ je bráno jako „c+h“ a příslušně dle toho jsou po aplikaci příkazu slova seřazena. Také znaky s diakritikou představují velký problém, neboť si s nimi příkaz nedokáže poradit a řadí je na naprosto nesmyslná místa.

Po dlouhém hledání na internetu se mi konečně podařilo objevit vcelku nenápadnou stránku, z níž je možné stáhnout rozšíření sortLocale.el, jež výše uvedený problém celkem elegantně řeší. Sice jsou stále některé znaky řazeny poněkud jinak, než by bylo záhodno („ě“ před „é“ apod.), ale proti defaultnímu řešení jde o velký pokrok.

Rozšíření stačí zkopírovat do příslušného adresáře a do konfiguračního souboru Emacsu zkopírovat následující příkaz (v Emacsu se pak activuje M-x sort-lines-according-locale):

;; České abecední třídění řádků
(require 'sortLocale)

Český kalendář

Zdá se, že obtíže s lokalizací se nevyhnuly ani tak základní věci, jakou je kalendář. V defaultním nastavení se zobrazuje pouze ten anglický, tj. s anglickými názvy dnů a měsíců i se začátkem týdne připadajícím na neděli. Bohužel někdejší české rozšíření z dílny Pavla Janíka už nějaký čas nefunguje. Naštěstí je však opět při ruce emacsová wiki a již po krátkém prolétnutí je možné najít postup, jak si kalendář lokálně uzpůsobit.

Opět stačí jen prosté zkopírování následujících řádků do souboru .emacs:

;; Český kalendář
(setq european-calendar-style 't)
(setq calendar-week-start-day 1
      calendar-day-name-array
      ["neděle" "pondělí" "úterý" "středa"
       "čtvrtek" "pátek" "sobota"]
      calendar-month-name-array
      ["leden" "únor" "březen" "duben" "květen"
       "červen" "červenec" "srpen" "září"
       "říjen" "listopad" "prosinec"])

Po zadání M-x calendar již vše funguje, jak má. Názvy dní i měsíců jsou záměrně s malými písmeny, neboť při vkládání data do textu nepůsobí velká písmena dobře (nehledě na to, že je to v rozporu s jazykovou normou). Bohužel jsem zatím nevyřešil problém, jak do data vkládat tečku za pořadovým číslem dne či jak vyřešit otázku velkých a malých písmen (v zobrazeném kalendáři by velká písmena u názvů dní i měsíců vypadala lépe).

Pár slov závěrem

Netuším, zda vznikne nějaké pokračování, rozhodně nejsem žádný emacsový (ani jiný) guru. Možná by časem mohl vzniknout podobný blog post o org-mode, případně o dalších možnostech při tvorbě netechnických textů, ale opravdu je podobný záměr v současné době ve hvězdách.

1 Ano, existuje i typografická klávesnice pro X Window, ale upřímně, kdo o její existenci ví – není součástí instalace snad žádné z distribucí – a kdo ji používá?

Vydáno v: on Září 19, 2011 at 9:47 pm  Napsat komentář  
Follow

Get every new post delivered to your Inbox.