V Linuxu existuje mnoho textových editorů. Některé jsou dodávány s většinou distribucí, jiné si musíte nainstalovat dodatečně. Textové editory jsou důležitým nástrojem pro každého uživatele nebo administrátory Linuxu. Servery často nemají GUI, a i když je Linux sám o sobě velmi stabilní, viděl jsem, že GUI selhalo mnohokrát. Když ztratíte své GUI, musíte mít sadu textových nástrojů, se kterými budete spokojeni.
Než se pustím do základů ovládání GNU Emacs, chci si nejprve něco ujasnit. Pravděpodobně jste si vědomi války „Emacs vs Vim“, která je zodpovědná za mnoho přehnaných diskuzí. Miluji Vim, používám ho více než deset let. Ale o Emacsu jde o to, že to není jen textový editor.
Ve svém jádru by se Emacs dal jednoduše popsat jako rámec vyrovnávacích pamětí a rámců. Rámy jsou způsob, jakým rozdělíte okna, můžete mít tolik rámů, kolik chcete. V režimu GUI můžete mít více oken Emacs, z nichž každé obsahuje jeden nebo více snímků. Pak máte buffery, buffery jsou naplněny obsahem, který je odněkud napájen. Když naplníte vyrovnávací paměť souborem, pak Emacs hraje roli textového editoru. Můžete dokonce použít Emacs jako správce oken.
Seznamte se s rozložením Emacs
Nejprve se zaměřme na základy. Zde se naučíte základy ovládání Emacsu.
Emacs lze nainstalovat přímo prostřednictvím správy balíčků vaší distribuce. Po instalaci spustí Emacs režim GUI. Tento režim může být užitečný při spuštění, protože poskytuje přístup k liště nabídek. Je důležité si pamatovat, že každá položka nabídky jednoduše provede příkaz Emacs a to vše lze provést v textovém režimu. Chcete-li vynutit textový režim v prostředí GUI, spusťte emacs –nw v terminálu.
Při prvním spuštění Emacsu se vám zobrazí uvítací obrazovka. Tato obrazovka již zobrazuje více funkcí Emacsu. Podtržený text jsou odkazy, lze je aktivovat kliknutím myši nebo stisknutím klávesy Enter s kurzorem na jednom. Některé jsou odkazy na webovou stránku, která by více než pravděpodobně otevřela eww (vestavěný webový prohlížeč Emacs). Na této stránce je také vestavěný tutoriál.
Vaše počáteční rozvržení se bude skládat z jednoho rámce, více než pravděpodobně obsahujícího obsah asi Emacsu. Pod rámečkem máte stavový řádek a to, co vypadá jako prázdné místo pod stavovým řádkem. Toto prázdné místo je ve skutečnosti mini-buffer, který Emacs používá k interakci s vámi. Na obrázku má mini-buffer text
Základní koncept klávesových zkratek v Emacs
Vazba kláves (nebo klávesové zkratky) je způsob, jakým ovládáte Emacs. Vždy to začíná klávesovou zkratkou.
Emacs používá modifikační klávesy jako předponu klávesové zkratky. Nejdůležitější modifikátory jsou C (Ctrl), M (Meta), S (Shift). M (Meta, obvykle přiřazeno k ALT).
Abychom to shrnuli, klíčová konvence je:
- C =Ctrl
- M =Meta =Alt
- S =Shift
Upřímně si myslím, že vázání kláves je jedním z hlavních důvodů, proč lidé odcházejí od učení Emacs. Ve výchozím nastavení Emacsu je více než 1300 klávesových zkratek. Ale nezapomeňte, Emacs je pouze textový editor při úpravách souborů, těch 1300+ klávesových zkratek umí mnohem víc než jen úpravy souborů.
Jak se tedy začít učit Emacs a jeho posedlost vázáním kláves? Je to poměrně jednoduché, základní myšlenkou je procvičit si několik kláves najednou, velmi rychle se z nich stane svalová paměť. Když nahrávám video lekce o Emacsu, říkám při stisknutí klávesové zkratky, alespoň to zkouším. Pravdou je, že stisknuté klávesy jsou dávno hotové a zpracované, zatímco se stále snažím zjistit, které to byly. Největší a nejtěžší částí je tento dokument.
Začněme a nezapomeňte hodně procvičovat vázání kláves!
Nejlepší způsob, jak vysvětlit, jak píšeme klíčovou vazbu, je na několika příkladech. Ne všechny příklady jsou však funkční klávesovou zkratkou:
- C-x =CTRL+x
- C-x 2 =Stiskněte CTRL a x a poté stiskněte 2 (před stisknutím 2 je nutné uvolnit klávesu CTRL)
- C-x C-2 =Stiskněte CTRL a x, poté CTRL a 2. Nebo CTRL-x-2 (neuvolňujte CTRL)
- Příkaz M-x
=Stiskněte META+x
V dokumentaci také pravidelně uvidíte klávesovou zkratku napsanou textem v ().
C-x C-f (find-file)
Text uvnitř () představuje funkci Emacs, která bude provedena s touto klávesovou zkratkou. Brzy bude jasné, proč je to důležité.
Oblíbené klávesy Emacsu jsou CTRL a ALT. Zatímco klávesa ALT nepředstavuje problém, je velmi dobře známo, že rozsáhlé používání klávesy Left CTRL způsobuje problémy s malíčky. Můžete snadno použít xmodmap k prohození kláves CTRL a CAPSLOCK nebo jakékoli jiné klávesy, kterou preferujete.
Používání Emacsu s klávesovými zkratkami aka Emacs Commands
Jak již bylo zmíněno, zaměřte se na učení několika klávesových zkratek najednou, stanou se svalovou pamětí. První sada je nejtěžší část, ale bude stačit, abyste mohli začít pracovat s Emacsem jako textovým editorem.
Manipulace se snímky | |
---|---|
C-x 2 | rozdělené-okno-níže |
C-x 3 | rozdělit-okno-vpravo |
C-x o | jiné-okno |
C-x 1 | delete-other-window |
C-x 0 | delete-window |
Manipulace s vyrovnávacími pamětmi | |
---|---|
C-x b | přepnout na vyrovnávací paměť |
C-x C-B | seznam-vyrovnávací paměti |
C-x k | kill-buffer |
Otevřít a uložit soubory | |
---|---|
C-x C-f | najít-soubor |
C-x C-s | save-buffer |
Vyhledat a nahradit | |
---|---|
C-s | hledat vpřed |
C-r | hledat vzad |
Vyberte, vyjměte, zkopírujte a vložte | |
---|---|
C- | set-mark-command |
C-w | kill-region |
M-w | kill-ring-save |
C-y | trhnout |
Provádění příkazů | |
---|---|
M-x | execute-extended-command |
Promluvme si o nich podrobně.
Manipulace se snímky v Emacs
Jak již bylo zmíněno, Emacs rozděluje okno pomocí snímků. Než se dozvíme o vyrovnávací paměti, podívejme se, jak jsme rozdělili naši obrazovku.
- C-x 2 rozdělí aktuální snímek vodorovně.
- C-x 3 rozdělí aktuální snímek vertikálně.
- C-x o přesune zaměření na další snímek. Pokud je mini-buffer aktivní, bude součástí cyklu.
- C-x 1 zavře všechny ostatní snímky a ponechá pouze aktuální snímek. Neuzavírá vyrovnávací paměti.
- C-x 0 zavře aktuální snímek.
Obrázek níže zobrazuje mnoho snímků, některé zobrazují stejnou vyrovnávací paměť, ale s kurzorem na jiném místě.
Manipulace s vyrovnávací paměti v Emacs
- C-x b (přepnutí do vyrovnávací paměti)
- C-x C-B (list-buffery)
- C-x k (kill-buffer)
Buffery jsou to, s čím pracujete, buffery obsahují data, většinou text. Když otevřete soubor, obsah tohoto souboru je umístěn do vyrovnávací paměti. Tento buffer bude pojmenován podle názvu souboru. Poté pracujete v rámci vyrovnávací paměti. Změny se použijí na zdroj (soubor), když je požadováno uložení. Ve výchozím nastavení má Emacs automatické ukládání. Neukládá každých x minut, ale každých x úprav provedených ve vyrovnávací paměti. Otevřená vyrovnávací paměť bez úprav nespustí automatické ukládání.
Chcete-li přepnout na jiný buffer, stiskněte C-x b, minibuffer se aktivuje a je připraven přijmout název vyrovnávací paměti. Automatické dokončování je vázáno na klávesu
Mít mnoho vyrovnávacích pamětí nezabere žádný čas a možná si je nepamatujete všechny. Chcete-li zobrazit seznam všech aktuálně otevřených vyrovnávacích pamětí, stiskněte C-x C-b . Otevře se nový buffer v rozděleném rámci s úplným seznamem bufferů. V této vyrovnávací paměti můžete manévrovat pomocí klávesy se šipkou a přepnout na vyrovnávací paměť v bodě pomocí
Ze seznamu vyrovnávací paměti můžete označit záznam v bodě pro:
- uložení stisknutím s
- Odstranění (zničí vyrovnávací paměť, nesmaže soubor) stisknutím d nebo k
- Odstraňte příznaky stisknutím u
- Všechny označené příznaky spustíte stisknutím x
Chcete-li zrušit jakýkoli buffer, stiskněte C-x k mini vyrovnávací paměť se aktivuje a čeká na název vyrovnávací paměti, můžete zadat jakýkoli stávající název vyrovnávací paměti a stisknout
Následující obrázek zobrazuje seznam vyrovnávacích pamětí s označenými pro uložení nebo smazání.
Otevírat a ukládat soubory v Emacs
- C-x C-f (najít soubor)
- C-x C-s (save-buffer)
Většinu času potřebujete pracovat se soubory. Začněte otevřením souboru stisknutím C-x C-f. Mini buffer vám nabídne cestu a je připraven zadat cestu k souboru, který chcete otevřít. Automatické dokončování funguje i zde,
Pokud po stisknutí C-x C-f zadáte cestu k neexistujícímu souboru, vytvoří se nová vyrovnávací paměť, ale soubor se vytvoří až po uložení vyrovnávací paměti.
Pokud zadáte cestu k adresáři po C-x C-f, otevře se nový buffer s obsahem adresáře. Tato nová vyrovnávací paměť bude v režimu DIRED. V režimu DIRED můžete manévrovat pomocí kláves se šipkami. Až budete na požadovaném souboru, stiskněte
V režimu DIRED lze se souborovým systémem provádět mnoho operací, ale jak již bylo vysvětleno dříve, zaměřme se nejprve na základy.
Když pracujete na systému Linux, často musíte pracovat se soubory, které vyžadují přístup root. Emacs to zvládá velmi dobře. Nezavírejte Emacs a nespouštějte jej jako root, to není dobrý nápad.
Stiskněte C-x C-f poté pokračujte ve vymazání dané cesty v minibufferu a nahraďte ji /sudo::/path/to/file
Pokud se pokusíte použít automatické dokončování
Pokud jej odstraníte, i když se to nedoporučuje, budete pravděpodobně požádáni o heslo při pokusu o uložení a trampová vyrovnávací paměť bude zpět. Otevření více vyrovnávacích pamětí jako uživatel root bude mít za následek vytvoření více vyrovnávacích pamětí.
Je stejně snadné otevřít soubor na vzdáleném počítači pomocí ssh z Emacsu:
C-x C-f /ssh:[email protected]:/path/to/file
Měli byste přemýšlet o otevření souboru na vzdáleném systému jako root? Ano, ale tento si nechám na jindy.
Tento obrázek ukazuje na levém snímku režim DIRED mého domovského adresáře a napravo můj soubor .emacs.
Hledat a nahrazovat v Emacs
- C-s (isearch-forward)
- C-r (isearch-backward)
- M-% (query-replace)
Chcete-li provést dopředné vyhledávání, stiskněte C-s tím se aktivuje minibuffer pro zadání textu k vyhledávání. Vyhledávání probíhá během psaní. Chcete-li přejít na další zápas, stiskněte C-s znovu. Hledání se zalomí, ale poté, co vás jednou upozorní. Všimněte si, že stisknutím klávesy Backspace se nejprve vrátíte zpět k předchozí shodě před smazáním znaku.
Chcete-li hledat zpět, stiskněte C-r
Chcete-li nahradit, stiskněte M-% a poté budete mít minibuffer připravený k převzetí parametru vyhledávání. Zadejte jej a stiskněte
Hledání a nahrazení se spustí od kurzoru do konce vyrovnávací paměti.
Vyberte, vyjměte, zkopírujte a vložte v Emacs
- C-
(příkaz nastavení značky) - C-w (kill-region)
- M-w (kill-ring-save)
- C-y (trhání)
- M-y (trhání-pop)
Emacs má úplně jiný koncept výběru, vyjmutí, kopírování a vkládání. Nejprve se podívejme na výběr. Zatímco myš funguje velmi dobře v režimu GUI, naučit se ji nepoužívat se vyplatí, až GUI zmizí. To, co nazýváte vybranou oblastí, Emacs nazval aktivní oblastí. Chcete-li provést výběr nebo aktivovat oblast, umístěte kurzor na začátek požadované oblasti a stiskněte C-
Emacs neřeže, ale zabíjí. Když zabijete aktivní oblast pomocí C-w , Emacs jej „vyřízne“ z vyrovnávací paměti a uloží jej do zabíjecího kruhu. Kroužek zabíjení uchovává několik záznamů buď zabitých C-w nebo zkopírované M-w . Poté můžete tyto položky vytrhnout (vložit) z kruhu zabíjení a do aktuální vyrovnávací paměti v bodě pomocí C-y . Pokud hned po stisknutí C-y budete pokračovat pomocí M-y, záznam, který byl vložen do vyrovnávací paměti z prstence zabíjení, bude nahrazen předchozím. Vytrhnutím položky z vražedného kruhu se NEODSTRAŇUJE z vražedného kruhu a lze ji později vytrhnout znovu.
Spustit rozšířený příkaz v Emacs
- M-x (execute-extended-command)
Meta-x je unikátní klíčová vazba. Po stisknutí klávesové zkratky se podívejte na mini buffer. Váš kurzor bude automaticky umístěn tam a Emacs a je připraven přijmout příkaz.
Příkazy pro klávesové zkratky jsou uvedeny v závorkách. Při psaní příkazu nepište závorky. Po napsání příkazu stiskněte
Je běžné vidět příkaz M-x napsaný v následujícím formátu:
M-x find-file <RET> ~/path/to/file <RET>
Všimněte si, že automatické dokončování je podporováno klávesou
Proč se učit o příkazu, když mohu použít klávesovou zkratku? Za prvé, dokonce i přes 1300 klávesových zkratek nemá každý příkaz jednu. Příkazy vám také umožňují zapisovat funkce pro provádění požadovaných úprav vybrané oblasti (aktivní oblasti) nebo celé vyrovnávací paměti. Tyto funkce pak lze volat pomocí M-x functionName a v případě potřeby vázání na kombinaci kláves dle vašeho výběru.
Jeden příkaz, který stojí za to ukázat novému uživateli, je M-x shell
Druhým nejdůležitějším příkazem, který je třeba se naučit, je M-x ren-buf
Závěr
Tento článek představuje velmi krátký a rychlý úvod do Emacsu. Naučili jste se základní příkazy/vázání kláves Emacsu a základní koncept úprav pomocí Emacsu.
Je toho mnohem víc, co pro vás může udělat. S více než 4000 balíčky dostupnými pro instalaci s integrovaným systémem správy balíčků Emacs. Flexibilita, kterou nabízí, je ohromující. Emacs bude růst a vyvíjet se s vámi.
Pro více informací o Emacsu a dalších tématech Linuxu mě sledujte na Facebooku:Učíme se Linux s Ericem Simardem