GNU/Linux >> Znalost Linux >  >> Linux

Začínáme s Emacsem:Vysvětlení základních příkazů

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 is undefined.

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 . Pokud je možných více shod, stiskněte podruhé a vytvoří se dočasná vyrovnávací paměť se všemi možnými shodami. Pokud zadáte neexistující název vyrovnávací paměti, bude vytvořena nová vyrovnávací paměť. Toto NEVYTVOŘÍ nový soubor. Často to používám k vytvoření dočasné vyrovnávací paměti.

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 . Pokud nezadáte jméno a stisknete , Emacs zavře aktuální vyrovnávací paměť.

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, automaticky doplní názvy adresářů a souborů. Jakmile jste spokojeni s cestou k souboru, stiskněte . Otevře se nový buffer s obsahem souboru. Vyrovnávací paměť bude pojmenována podle souboru. Po úpravě vyrovnávací paměti se na levé straně stavového řádku objeví 2 hvězdičky. Uložení změny:C-x C-s

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 a otevře se v nové vyrovnávací paměti. Pokud se znovu rozhodnete stisknout na adresáři, znovu se otevře nová vyrovnávací paměť v režimu DIRED.

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 . Emacs se pokusí otevřít soubor pomocí příkazu sudo and v případě potřeby budete vyzváni k zadání hesla.

Pokud se pokusíte použít automatické dokončování , bude v případě potřeby vyžadováno vaše heslo a automatické dokončování bude fungovat. Režim DIRED lze otevřít jako root. Všimněte si, že nový buffer s názvem *tramp/sudo …. bude vytvořen. Toto je vyrovnávací paměť, kterou Emacs potřebuje ke zpracování sudo.

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 , poté zadejte náhradní řetězec 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- posuňte kurzor 1 znak překročil konec požadované oblasti. Tato oblast se aktivuje automaticky. I když se tento koncept aktivní oblasti nyní může zdát zbytečný, je důležité mu porozumět, když začnete vytvářet funkci pro automatizaci opakujících se úloh.

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 . Pamatujte, jak jsem řekl, Emacs není jen textový editor. Výše uvedený příkaz otevře nový buffer s výzvou shellu. Toto není úplný emulátor terminálu, například nezvládá velmi dobře aplikace založené na curlingu. Displej není správně obnoven. Má to ale jiné výhody. Tento shell buffer je textový buffer pro čtení/zápis. Když umístíte kurzor na konec a napíšete příkaz, stiskněte   , příkaz je odeslán do subshell a výstup je přidán do vyrovnávací paměti. To vám umožní snadno vyhledávat tam a zpět, kopírovat a vkládat, vybrat celou oblast a dokonce uložit obsah vyrovnávací paměti do souboru.

Druhým nejdůležitějším příkazem, který je třeba se naučit, je M-x ren-buf NewBufferName . Tento příkaz umožňuje přejmenovat aktuální vyrovnávací paměť. Pokud vyrovnávací paměť obsahuje obsah souboru, nedojde k přejmenování souboru. To je užitečné, když potřebujete více než jeden shell. Pokud zadáte M-x shell a máte jednu otevřenou, vyvolá to stávající. Přejmenujte vyrovnávací paměť *shell*, abyste otevřeli další shell. Emacs má také eshell a term, ale to je mimo náš současný rozsah.

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


Linux
  1. 20 základních Linuxových příkazů pro začátečníky vysvětlených s příklady

  2. Začínáme s ls

  3. Začínáme s PostgreSQL na Linuxu

  1. Začínáme se Zsh

  2. Začínáme se Sambou pro interoperabilitu

  3. Začínáme s SSH v Linuxu

  1. Začínáme s GnuCash

  2. Začínáme s Etcher.io

  3. Začínáme s regulárními výrazy