- předchozí článek - následující článek - obsah - úvodní stránka - | - předchozí část - následující část - první část - |
Linuxové noviny | 10/98 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Z prvního dílu jsme si odnesli primární znalost C-x C-c - ukončení Emacsu. Dnes si krok po kroku probereme nastavení češtiny (píšeme rádi háčky a čárky, ne ?:-)), vaší klávesnice, aby vyhovovala, čtení dokumentace v systému Info a používání bufferů.
Čeština ve znakovém režimuPříprava pro práci v našem rodném jazyce má dvě fáze. Za prvé je nutné mít nějaký konsolový ISO Latin 2 font. Například já používám font lat2-16.psf, který se mi líbí. Ten musí být v případě RH 4.2 umístěn v adresáři /usr/lib/kbd/consolefonts. Někam na konec souboru /etc/rc.d/rc.local jsem si přidal jeho aktivaci pomocí
$ setfont lat2-16.psf Tímto jsme jinými slovy nainstalovali na konsoli český Latin 2 font. Mám pro tyhle účely soubory s abecedami v různém kódování, takže (na konsoli) jednoduše vyzkoušíme:
$ cat abeceda-lat2.txt AÁBCČDĎEÉĚFGHIÍJKLMNŇOÓPQRŘSŠTŤUÚŮVWXYÝZŽ aábcčdďeéěfghiíjklmnňoópqrřsštťuúůvwxyýzž Výborně. Funguje to. Druhou fází je česká klávesnice. Tady není potřeba instalovat českou klávesnici do systému (i když i to je možné a nechci Vás od toho odrazovat), ale vystačíme s českou klávesnicí od Milana Zamazala (pdm@freesoft.cz) v jeho výborném počešťovacím balíku emacs-czech. Úplně košer by asi bylo nainstalovat českou klávesnici do systému, ale já s tím mám pořád v X window systému problémy a zatím mi stačí mít českou klávesnici v Emacsu. (Ta funguje i na konsoli i v prostředí X výborně.) Pro svůj Emacs 19.34 jsem si nainstaloval emacs-czech-3.8.tar.gz, který je k nalezení v adresáři ftp://sunsite.mff.cuni.cz/i18n/Latin2/emacs/emacs-19 nebo na ftp://ftp.fi.muni.cz/pub/localization/emacs/ nebo na oficiálním URL http://www.freesoft.cz/software/emacs/czech/. Přepněte se na root-a, rozbalte balík třeba v adresáři /tmp, přečtěte si README a lehce vše nainstalujete. Pozor, nezapomeňte před zadáním make upravit Makefile, je tam potřeba změnit nastavení na
LISPDIR=/usr/share/emacs/site-lisp a INFODIR=/usr/info Důležité je (jak se píše v dokumentaci) také upravit soubor /usr/info/dir. Přidejte si někam na začátek řádek
* emacs-czech:(emacs-czech.info). Čeština do Emacsu přesně tak, jak je napsáno. Tím je skončena instalace češtiny pod superuživatelem a poslední věc, která je potřeba udělat (už jako normální uživatel), je přidat si do vašeho souboru /.emacs následující řádky. Ano, to už byste právě teď měli dělat se mnou :-).
$ cd $ emacs -nw .emacs ;;; .emacs (load "czech") (if (not window-system) (setq cz-redefine-alt-digits t)) Výborně, jen tak dál... Nezapomeňte soubor uložit C-x C-s. Tak, teď když skončíte a znovu nastartujete Emacs, měli byste bez problémů vidět i psát české znaky. Neděste se, že zápisu nahoře nerozumíte, já jsem mu z počátku také nerozuměl a nic tak hrozného se nedělo. Intuitivně každý vidí, že komentář se uvozuje jedním nebo více středníky (;) a že první řádek aktivuje Milanův modul s češtinou a poslední řádek pro nás připraví úpravu pro Emacs spuštěný na konsoli, kde je malý problém s numerickým blokem.
Čeština v X window systémuKromě všeho zmíněného v minulé kapitole musíte ještě nainstalovat do X window systému alespoň jeden font ISO Latin 2. Toto už bohužel přesahuje rámec toho textu, takže to ponechávám vaší aktivitě. Není to ale nic složitého :-) Můj tip: zkuste návod http://www.penguin.cz/czech-howto/.
Konfigurační soubor ~/.emacsSoubor ~/.emacs čte Emacs podobně jako jiné programy vždy na začátku při startu, a tak je výhodné si do něj přidat veškeré vaše soukromé nastavení - tedy i češtinu. Bude nejspíš postupně přibývat s tím, jak budete náročnější a náročnější. To je dobře. Tak, teď můžete otevřít
$ emacs -nw abeceda-lat2.txt a protože ho zřejmě nemáte, zkuste si pěkně napsat abecedu, jestli to vůbec jde. V pořádku. Česká a US klávesnice se přepíná pomocí klávesy Pause nebo ekvivalentně pomocí sekvence C-x z z, pokud třeba nemáte na vaší klávesnici momentálně Pause. Ve stavové řádce dole vidíte zapínat a vypínat indikaci CZ. Funguje mrtvá klávesa a na konsoli se číslice v této konfiguraci píší pomocí M-<číslice>. V systému X funguje normálně numerický blok.
DokumentaceToto je nastavení, které vyhovuje například mně, ale je jasné, že někomu třeba nesedí. Pokud jste správně instalovali, můžete se podívat na dokumentaci k balíku emacs-czech. Ta je psána v hypertextovém systému Info a v Emacsu je samozřejmě dostupná a to takto:
Tyto klávesy by vám pro začátek měly stačit a samozřejmě projděte si zmíněný tutorial C-h i h a experimentujte. Když si tedy spustíte Info C-h i, měli byste vidět řádek
* emacs-czech:(emacs-czech.info). Čeština do Emacsu Napište m emacs-czech Enter a už si čtete dokumentaci k balíku emacs-czech. Dokumentace má v Emacsu už tradičně velmi vysokou úroveň a opravdu se z ní dá ledacos naučit. Mezi základní velké vymoženosti Emacsu patří
Takže jen s úctou žasněme, kolik možností konfigurace i tento balík má. Například možnost vytvořit si vaši vlastní klávesnici, třídění, konverze znakových sad atd. Velmi praktické věci, když vám různě lidé posílají e-maily a soubory převážně v kódování Win1250 - pak stačí v Emacsu dva tři akordy a hle text je v Latin 2 a můžeme ho lidsky číst a ne hádat, jestli "čtvereček je ž nebo ř". Pokud vám toto nastavení nevyhovuje, zanořte se do Info dokumentace a čtete a čtěte a experimentujte s nastavením. Podobně jako k balíku emacs-czech, který jsme právě nainstalovali, je v systému Info dostupná velmi podrobná dokumentace i k vlastnímu Emacsu. Zkuste C-h i d m emacs Enter a jste tam. Zde najdete odpověď skoro na všechno, co vás zajímá a z čeho já vám tady říkám jen zlomky. Točí se vám hlava, kolik toho je, že? Mně se také točila. Ale nemusíte to číst všechno najednou, ne :-)? Tak, teď s klidným srdcem opusťte dokumentaci Info pomocí klávesy q a budeme se věnovat bufferům, jedné ze základních abstrakcí v Emacsu.
BufferyEmacs umisťuje text do struktury/kontejneru, kterému se říká buffer. (Zatím mě nenapadl dobrý překlad, takže se tímto omlouvám jazykovým puristům - budu používat hrubě buffer.) Při běhu Emacsu buffery vznikají a zanikají podle potřeby. Na obrazovce v pracovní oblasti se zobrazují okna (window), kde v každém okně se zobrazuje právě jeden buffer. Je možné, že se nějaký daný buffer právě nezobrazuje v žádném okně a také je možné, že se zobrazuje ve dvou a více oknech zároveň. Pro jednoduchost zatím předpokládejme, že máte na obrazovce jedno velké okno a to nám zatím vystačí.Ačkoliv nejtypičtější buffer je samozřejmě buffer vzniklý načtením nějakého souboru, můžete se přepínat a dívat/pracovat i v ostatních (vzpomínáte na prohlížení dokumentace Info - to byly také buffery, které vám subsystém Info zobrazoval a nechal vás jimi procházet). Podívejme se na základní buffery, se kterými se budete v Emacsu často setkávat. Třeba hned na začátku při startu Emacsu tímto způsobem
$ emacs -nw se ocitnete v bufferu nazvaném *scratch* ("zelená louka"). Je to proto, abyste se nedívali do prázdna a mohli začít třeba něco psát. Tímto bufferem se neznepokojujte, automaticky se vytváří a většinou ho vůbec nepoužíváte. Dalším je buffer *Messages*, kam Emacs píše zprávy, které vznikly při vaší práci a zobrazovaly se v komunikačním řádku dole, než byly přepsány jinou hláškou. Občas se hodí podívat se, co že za chybové/varovné hlášky se vlastně vypisovaly. Zde jsou přehledně příkazy pro práci s buffery a okny:
Vyzkoušejte si přeskakování mezi jednotlivými buffery pomocí C-x C-b, potom vybrat pomocí šipek a Enter. Přeskakování mezi jednotlivými buffery je jedna z nejčastějších operací, proto si ji dobře prozkoušejte. Minimálně ještě příkaz g je v bufferu Buffer List velmi užitečný, znamená obnov obsah tohoto bufferu. Pokud vás zajímají i další příkazy v bufferu *Buffer List*, stiskněte podle rady ve stavové řádce ?. Obrazovka se vám rozdělí vedví a v dolní části už čtete dokumentaci použití tohoto bufferu. Podle rady v dolní řádce stiskněte několikrát C-M-v a až budete mít čtení dost, C-x 1 a je to. Toto je velmi častá operace. Často vám totiž různé subsystémy Emacsu ve chvíli, kdy je více možností volby, připraví pro větší pohodlí možnosti (completion==doplňování) tímto způsobem do vedlejšího okna a výše zmíněné kombinace kláves vám umožní si nabídku prohlédnout a potom nadbytečné okno zrušit.
SouborySamozřejmě nejvíce bufferů bude obsahovat soubory, které budete editovat. Pojďme rovnou k přehledné tabulce nejpoužívanějších akcí:
Takže od teď už nebudeme zbytečně startovat a ukončovat Emacs znovu a znovu pro každý soubor, ale nastartujeme ho prostým
$ emacs -nw a pomocí příkazů, které už umíme, můžeme opracovávat (já sám interně říkám soustružit :-)) spousty souborů za den. Připomínám, že názvy v závorkách jsou jména funkcí v Emacsu. Každá operace v Emacsu je realizována funkcí, která se nějak jmenuje. To, že třeba klávesová sekvence C-x C-c provede uložení změněných souborů a konec Emacsu (save-buffers-kill-emacs), je věc navázání (key bindings). Proto se snažím, kde to jde, zmínit jméno funkce. Osvětlím to na příkladu: Řekněme, že jste z nějakého důvodu zvyklý(-á) na to, že klávesa F10 ukončí editor a nelíbí se vám, že standardně Emacs ukončujete pomocí C-x C-c. V Emacsu to není žádný problém. Stačí připsat někam do souboru ~/.emacs následující:
(global-set-key [f10] 'save-buffers-kill-emacs) Závěrem malý dárek. Protože princip lokality a kešování platí i pro práci se soubory (mám vyzkoušeno), je velmi praktické udělat si na jednu klávesu přepnutí do posledně editovaného bufferu. Tato funkce přímo v Emacsu není, ale zde je řešení, které jsem před lety někde v News-ové skupině gnu.emacs.help viděl (a aktivně si ho nakopíroval :-)). Pokud můžete číst News, pak vám tuto skupinu v začátcích velmi doporučuji. Sám jsem se tam čtením příspěvků přiučil mnohému. Jen poznámka - před tím než pošlete svoji otázku, otevřete si dokumentaci a hledejte alespoň 5 minut + projděte si FAQ (C-h F). Z 80% tam vždycky najdete odpověď a ušetříte tím už tak přetíženým odborníkům čas a energii na vlastní vylepšování programu. Řešení je následující. Opět do ~/.emacs si přidejte toto:
;;;-------------- (defun toggle-buffers () "Steps to the next buffer in list, putting the current buffer at the top of the selection list." (interactive) (switch-to-buffer (other-buffer)) ) (global-set-key [f5] 'toggle-buffers) Anebo můžete použít definici klávesového makra, která je nepatrně méně robustní, ale jednodušší:
(global-set-key [f5] "\C-xb\r") A při příštím startu bude fungovat klávesa F5 jak jsme chtěli. Takže na místo C-x C-b šipka_dolů Enter stačí teď už jen F5. Podobným způsobem se dá udělat spousta kouzel, která šetří váš čas a mentální energii :-) |
- předchozí část - následující část - první část - | - předchozí článek - následující článek - obsah - úvodní stránka - |