From 0d7b8bcfe58c92f0fc871180300b237ba5cf0875 Mon Sep 17 00:00:00 2001 From: Daneel Date: Mon, 23 Feb 2026 19:04:54 +0100 Subject: [PATCH] docs: emacs-new-features -- pure ASCII, aktualizovane popisy --- notes/emacs-new-features.org | 310 ++++++++++++++++++----------------- 1 file changed, 158 insertions(+), 152 deletions(-) diff --git a/notes/emacs-new-features.org b/notes/emacs-new-features.org index dd8f9bf..048cfa5 100644 --- a/notes/emacs-new-features.org +++ b/notes/emacs-new-features.org @@ -1,244 +1,250 @@ -#+TITLE: Nové featury Doom Emacs — testovací průvodce +#+TITLE: Nove featury Doom Emacs -- testovaci pruvodce #+DATE: 2026-02-23 #+AUTHOR: Daneel -Tento dokument popisuje všechny nové featury přidané do konfigurace. -Po každé změně je nutný =doom sync= + restart Emacsu. +Tento dokument popisuje vsechny nove featury pridane do konfigurace. +Po kazde zmene je nutny =doom sync= + restart Emacsu. * Prerekvizity -Než testuješ cokoli: +Nez testuje cokoli: #+begin_src sh -cd ~/.doom.d # nebo kde máš doom config +cd ~/.doom.d doom sync #+end_src -Pak restartuj Emacs. Bez toho nové balíčky nejsou dostupné. +Pak restartuj Emacs. Bez toho nove balicky nejsou dostupne. -* 1. link-hint — otevírání odkazů bez myši +* 1. link-hint -- otevirani odkazu bez mysi -Co dělá: zvýrazní všechny viditelné odkazy v bufferu a přiřadí jim -jednopísmenné zkratky. Stisknutím písmene odkaz otevřeš nebo zkopíruješ URL. +Co dela: zvyrazni vsechny viditelne org-format odkazy v bufferu a prirad jim +jednopismenne zkratky. Stisknutim pismene odkaz otevres nebo zkopirujes URL. -Prerekvizita: =doom sync= dokončen. +Prerekvizita: =doom sync= dokoncen, soubor musi obsahovat =[[...]]= odkazy. Jak testovat: -1. Otevři buffer s URL (Markdown, org, nebo jakýkoli text s http://) -2. Stiskni =SPC j k= → link-hint zvýrazní všechny odkazy -3. Stiskni písmeno vedle odkazu → odkaz se otevře v prohlížeči -4. Pro kopírování URL: =SPC j K= → stiskni písmeno → URL je v clipboardu +1. Otevri org soubor ktery ma =[[https://example.com]]= nebo =[[file:inbox.org]]= odkazy +2. Stiskni =SPC j k= -- link-hint zvyrazni viditelne odkazy +3. Stiskni pismeno vedle odkazu -- odkaz se otevri +4. Pro kopiovani URL: =SPC j K= -Ověření: pokud =SPC j k= zobrazí barevné písmeno u každého odkazu, funguje. +*Dulezite:* "No links" je spravna hlaska kdyz buffer nema zadny =[[...]]= odkaz +viditelny na obrazovce. Index.org bez explicitu odkazu = zadne linky. Funguje +spravne -- neni to chyba. -* 2. Avy — skok na libovolné místo v bufferu +Priklady odkazu ktere link-hint najde: +- =[[https://example.com][Odkaz]]= -- HTTP odkaz +- =[[file:inbox.org]]= -- soubor +- =[[*Nadpis]]= -- interni odkaz v dokumentu -Co dělá: zvýrazní každý výskyt dvou zadaných znaků a skoční na vybrané -místo bez pohybu myší. +* 2. Avy -- skok na libovolne misto v bufferu -Prerekvizita: Doom má avy v =:editor snippets= — je dostupný automaticky. +Co dela: zvyrazni kazdy vyskyt dvou zadanych znaku a skoci na vybrane +misto bez pohybu mysi. + +Prerekvizita: Doom ma avy automaticky -- dostupny bez doom sync. Jak testovat: -1. Otevři soubor s textem -2. Stiskni =SPC j j= → zadej dva znaky (např. =th=) → Avy zvýrazní shody -3. Stiskni písmeno u cílového výskytu → kurzor skočí tam -4. Pro skok na řádek: =SPC j l= → zadej písmeno u řádku → skok +1. Otevri soubor s textem +2. Stiskni =SPC j j= -- zadej dva znaky (napr. =th=) -- Avy zvyrazni shody +3. Stiskni pismeno u ciloveho vyskytu -- kurzor skoci tam +4. Pro skok na radek: =SPC j l= -- zadej pismeno u radku -Ověření: kurzor přeskočí na vybranou pozici bez scrollování. +Overeni: kurzor preskoci na vybranou pozici bez scrollovani. -* 3. olivetti-mode — klidný distraction-free mód +* 3. olivetti-mode -- klidny distraction-free mod -Co dělá: horizontálně centruje text na šířku 90 znaků a ukryje postranní -rušivé prvky. Zapíná se *ručně* — automatické zapínání by rozbilo corfu. +Co dela: horizontalne centruje text na sirku 90 znaku. Zapina se *rucne* -- +automaticke zapinani by rozbilo corfu completion popup. -Prerekvizita: =doom sync=, balíček =olivetti= nainstalován. +Prerekvizita: =doom sync=, balik =olivetti= nainstalovan. Jak testovat: -1. Otevři org nebo Markdown soubor -2. Stiskni =SPC t o= → text se vycentruje na střed okna -3. Stiskni =SPC t o= znovu → vrátí se do normálního layoutu +1. Otevri org nebo Markdown soubor +2. Stiskni =SPC t o= -- text se vycentruje na stred okna +3. Stiskni =SPC t o= znovu -- vrati se do normalniho layoutu -Ověření: text se viditelně přesune od levého okraje do středu. +*Upozorneni:* Pokud zapnes olivetti a corfu popup zmizi nebo se zobrazi +mimo obrazovku, vypni olivetti. Olivetti meni vizualni marginy a corfu +pak pocita spatne souradnice popupu. -*Důležité:* olivetti nesmí být auto-zapnuto v org bufferech — pokud ho -zapneš a pak otevřeš corfu popup, může se zobrazit mimo obrazovku. -Zapínej/vypínej ručně dle potřeby. +* 4. org-modern -- vylepseny vizual org-mode -* 4. org-modern — vylepšený vizuál org-mode +Co dela: nahradi hvezdicky u nadpisu Unicode symboly (okrouhlymi tvary), +zvyrazni checkboxy. Aktivuje se automaticky po loadu org-modern balicku. -Co dělá: nahrazuje ASCII hvězdičky u nadpisů Unicode symboly (◉ ○ ✸ ✿), -zvýrazňuje checkboxy. Aktivuje se *pouze* v souborech (ne v export bufferech). - -Prerekvizita: =doom sync=, balíček =org-modern= nainstalován. +Prerekvizita: =doom sync=, balik =org-modern= nainstalovan. Jak testovat: -1. Otevři libovolný =.org= soubor -2. Nadpisy by měly mít místo =*= → =◉=, =**= → =○= atd. -3. Checkboxy =[ ]= a =[X]= vypadají jinak +1. Otevri libovolny =.org= soubor (napr. inbox.org) +2. Nadpisy by mely mit jinak vyzerajici hvezdicky +3. Checkboxy =[ ]= a =[X]= vypadaji jinak -Ověření org exportu (klíčové): -1. Otevři org soubor s tabulkou a nadpisy -2. =SPC m e l o= (nebo =C-c C-e l o=) → PDF export -3. Export musí proběhnout bez chyby -4. Pokud export funguje, org-modern neinterferuje +Pokud org-modern nefunguje na uz otevreny soubor: spust =M-x org-modern-mode= +rucne nebo zavre a znovu otevri soubor. Konfigu zajistuje aktivaci i pro uz +otevrene buffery pri loadu balicku. -*Poznámka:* =org-modern-table= je záměrně vypnuto — tabulkové overlaye -mohou interferovat s LaTeX exportem. +Overeni org exportu (klicove): +1. Otevri org soubor s tabulkou a nadpisy +2. =SPC m e l o= nebo =C-c C-e l o= -- PDF export +3. Export musi probehnou bez chyby +4. =org-modern-table= je vypnuto -- tabulkove overlaye by mohly interferovat -* 5. org-fragtog — automatický náhled LaTeX fragmentů +* 5. org-fragtog -- automaticky nahled LaTeX fragmentu -Co dělá: když kurzor vstoupí do LaTeX fragmentu (=$E=mc^2$=), zobrazí -ho jako obrázek; když kurzor odejde, fragment zůstane jako obrázek. -Aktivuje se pouze v souborech, ne v export bufferech. +Co dela: kdyz kurzor vstoupi do LaTeX fragmentu (=$E=mc^2$=), zobrazi +ho jako obrazek; kdyz kurzor odejde, fragment zustane jako obrazek. -Prerekvizita: =doom sync=, =org-fragtog= nainstalován, funkční =dvipng= -nebo =imagemagick= na macOS (=brew install imagemagick=). +Prerekvizita: =doom sync=, =org-fragtog= nainstalovan, funkci =dvipng= +nebo =imagemagick=: =brew install imagemagick=. Jak testovat: -1. Otevři org soubor -2. Napiš inline LaTeX: =$E = mc^2$= -3. Pohni kurzorem ven z fragmentu → měl by se zobrazit jako obrázek -4. Pohni kurzorem dovnitř → obrázek zmizí, zobrazí se zdrojový kód +1. Otevri org soubor +2. Napis =$E = mc^2$= +3. Pohni kurzorem ven z fragmentu -- mel by se zobrazit jako obrazek +4. Pohni kurzorem dovnitr -- obrazek zmizi, zobrazi se zdrojovy kod -Ověření: pokud =dvipng= není dostupný, org-fragtog selže tiše -(žádné chybové hlášení, jen nefunguje preview). +Pokud dvipng neni dostupny, org-fragtog selze tise. Zkontroluj: +=M-x org-toggle-latex-fragment= -Ověření org exportu: =SPC m e l o= musí stále fungovat. +* 6. org-super-agenda -- skupiny v agenda view -* 6. org-super-agenda — skupiny v agenda view +Co dela: rozdeli org agenda view do skupin: Dnes, Cekam, Kyndryl, ZTJ, Ostatni. -Co dělá: rozděluje org agenda view do pojmenovaných skupin: -Dnes, Brzy (do 3 dnů), Čekám, Projekt Kyndryl, ZTJ, Ostatní. +Prerekvizita: =doom sync=, =org-super-agenda= nainstalovan. -Prerekvizita: =doom sync=, =org-super-agenda= nainstalován. +Skupiny: +- *Dnes*: polozky se SCHEDULED nebo DEADLINE dnes +- *Cekam*: polozky s TODO stavem WAIT +- *Kyndryl*: tag =:kyndryl:= nebo =:work:= +- *ZTJ*: tag =:ztj:= +- *Ostatni*: vsechno co nezapadne do predchozich skupin Jak testovat: -1. Otevři org agenda: =SPC o A= nebo =C-c a a= -2. Agenda by měla zobrazovat skupiny s názvy místo plochého seznamu -3. Položky s TODO =WAIT= by měly být ve skupině "Čekám" -4. Položky s tagem =:kyndryl:= nebo =:work:= ve skupině "Projekt Kyndryl" +1. Otevri org agenda: =SPC o A= nebo =C-c a a= +2. Agenda by mela zobrazovat skupiny s nazvy +3. Polozky s TODO =WAIT= ve skupine "Cekam" -Ověření: viditelné nadpisy skupin v agenda bufferu. +*Pokud agenda zobrazuje prazdnou stranku:* Spust =M-x org-super-agenda-mode= +pro aktivaci, nebo zkontroluj ze =doom sync= byl dokoncen. -* 7. org-noter — anotace PDF v org-mode +* 7. org-noter -- anotace PDF v org-mode -Co dělá: propojuje PDF soubor s org souborem poznámek. Stránkování -PDF a org poznámek je synchronizováno. +Co dela: propojuje PDF soubor s org souborem poznamek. Strankovani je synchronizovano. -Prerekvizita: =doom sync=, =org-noter= nainstalován, fungující pdf-tools -(=SPC m P= pro otevření PDF přes pdf-view). +Prerekvizita: =doom sync=, =org-noter= nainstalovan, PDF otvira se v pdf-view. Jak testovat: -1. Otevři PDF soubor (měl by se otevřít v pdf-view, ne v Preview) -2. Stiskni =SPC o n= → spustí org-noter session -3. Vytvoří nový org soubor poznámek, nebo vybere existující -4. Posouvej PDF → org soubor se synchronizuje s aktuální stránkou -5. Přidej poznámku: =SPC o N= → vloží org heading s pozicí v PDF +1. Otevri PDF soubor -- mel by se otevrit v pdf-view, ne v Preview +2. Stiskni =SPC o n= -- spusti org-noter session +3. Posouvej PDF -- org soubor se synchronizuje s aktualni strankou +4. Pridej poznamku: =SPC o N= -- vlozi org heading s pozici v PDF -Ověření: org heading obsahuje =:NOTER_PAGE:= property s číslem stránky. +Overeni: org heading obsahuje =:NOTER_PAGE:= property. -* 8. GPTel — rewrite regionu a org heading jako kontext +* 8. GPTel -- rewrite regionu a org heading -Co dělá: dvě nové funkce v GPTel: -- =SPC o g r= → pošle označený region s instrukcí "vylepši text" - a nahradí ho odpovědí -- =SPC o g p= → pošle obsah aktuálního org headingu jako kontext - do GPTel chatu +Co dela: +- =SPC o g r= -- posle oznaceny region do GPTel s instrukci "vyleps text" + a nahradi ho odpovedi +- =SPC o g p= -- posle obsah aktualu org headingu jako kontext do GPTel chatu -Prerekvizita: gptel funkční (=SPC o g g= otevírá chat). +Prerekvizita: gptel funkci (=SPC o g g= otevira chat). Jak testovat (rewrite): -1. Otevři soubor s textem -2. Označ region (visual mode: =v= pak pohyb) -3. Stiskni =SPC o g r= -4. Počkej — region se nahradí vylepšenou verzí textu +1. Otevri soubor s textem +2. Oznac region (visual mode: =v=) +3. =SPC o g r= -- pockat -- region se nahradi vylepsenim +4. Zprava: =GPTel: text vylepsen= v minibufferu Jak testovat (org heading): -1. Otevři org soubor -2. Postav kurzor do headingu se zápisem -3. Stiskni =SPC o g p= → obsah headingu se pošle jako kontext do GPTel chatu +1. Otevri org soubor +2. Postav kurzor do headingu +3. =SPC o g p= -- obsah headingu odeslan do GPTel chatu -Ověření: zpráva =GPTel: text vylepšen= nebo =GPTel: heading '...' odeslán= -v minibufferu. +* 9. git-link -- kopiovani URL na Gitea -* 9. git-link — kopírování URL na Gitea +Co dela: zkopiruje URL aktualniho souboru/radku na Gitea do clipboardu. -Co dělá: zkopíruje URL aktuální souboru/řádku na Gitea instanci -(=git.apps.sukany.cz=) do clipboardu. - -Prerekvizita: =doom sync=, =git-link= nainstalován, soubor musí být -v git repozitáři s remote na Gitea. +Prerekvizita: =doom sync=, soubor musi byt v git repo s remote na Gitea. Jak testovat: -1. Otevři soubor v emacs-doom nebo jiném Gitea repo -2. Postav kurzor na konkrétní řádek -3. Stiskni =SPC g y= → URL zkopírována do clipboardu -4. Ověř pbpaste: otevři terminál, spusť =pbpaste= → mělo by být URL jako: - =https://git.apps.sukany.cz/martin/emacs-doom/src/branch/master/config.el#L42= -5. Pro URL commitu: =SPC g Y= +1. Otevri soubor v emacs-doom nebo jinem Gitea repo +2. Postav kurzor na konkretni radek +3. =SPC g y= -- URL zkopirovna do clipboardu +4. Zkontroluj: =pbpaste= v terminalu -Ověření: URL v clipboardu odpovídá aktuálnímu souboru a řádku. +Overeni: URL odpovida aktualnimu souboru a radku na git.apps.sukany.cz. -* 10. Forge — Gitea integrace v Magit +* 10. Forge -- Gitea integrace v Magit -Co dělá: přidává pull request a issue management přímo do Magit. -Forge musí vědět o Gitea instanci. +Co dela: pridava pull request a issue management do Magit. Prerekvizita: =doom sync=, API token v =~/.authinfo=. -Nastavení tokenu: -1. Přihlas se na =https://git.apps.sukany.cz= -2. Settings → Applications → Generate new token (scope: =repo=) -3. Přidej do =~/.authinfo= (v domovském adresáři): - #+begin_src - machine git.apps.sukany.cz login daneel^forge password - #+end_src -4. Nastav oprávnění: =chmod 600 ~/.authinfo= +Nastaveni tokenu: +1. Prihlasit se na =https://git.apps.sukany.cz= +2. Settings -> Applications -> Generate new token (scope: =repo=) +3. Pridat do =~/.authinfo=: + : machine git.apps.sukany.cz login daneel^forge password +4. =chmod 600 ~/.authinfo= -Jak testovat po nastavení tokenu: -1. Otevři Magit: =SPC g g= -2. Stiskni =@= → Forge menu -3. =@ f= → fetch forge data (PRy, issues) -4. =SPC g i= → seznam issues pro aktuální repo +Jak testovat: +1. Otevri Magit: =SPC g g= +2. Stiskni =@= -- Forge menu +3. =@ f= -- fetch forge data (PRy, issues) -Ověření: bez tokenu Forge selže s chybou autentizace (očekávané chování). -S tokenem zobrazí PRy a issues z Gitea. +*Poznamka:* Bez tokenu Forge selze s chybou autentizace (ocekavane chovani). -* Shrnutí klíčových keybindingů +* Prehled klaves -| Klávesa | Funkce | +| Klavesa | Funkce | |-----------+-------------------------------| -| SPC j k | link-hint — otevři odkaz | -| SPC j K | link-hint — kopíruj URL | +| SPC j k | link-hint -- otevri odkaz | +| SPC j K | link-hint -- kopiruj URL | | SPC j j | avy-goto-char-2 | | SPC j l | avy-goto-line | | SPC t o | olivetti-mode toggle | | SPC o n | org-noter | | SPC o N | org-noter-insert-note | | SPC o g r | GPTel rewrite region | -| SPC o g p | GPTel org heading jako kontext| -| SPC g y | git-link (kopíruj URL) | +| SPC o g p | GPTel org heading -> kontext | +| SPC g y | git-link (kopiruj URL) | | SPC g Y | git-link-commit | -* Řešení problémů +* Reseni problemu + +** link-hint rika "No links" +Normalni chovani kdyz buffer nema zadny =[[...]]= odkaz viditelny na obrazovce. +Testuj na org souboru ktery obsahuje =[[https://...]]= nebo =[[file:...]]= linky. ** corfu nefunguje po olivetti -Pokud zapneš olivetti (=SPC t o=) a pak corfu popup zmizí nebo se zobrazí -mimo obrazovku: vypni olivetti (=SPC t o= znovu) a corfu se vrátí. -Olivetti mění vizuální marginy, corfu to nezvládne v kombinaci. +Vypni olivetti (=SPC t o=). Olivetti meni vizualni marginy, corfu popup pak +ma spatne souradnice. -** org export selže -Ověř že =org-modern-mode= není aktivní v export bufferu: -=M-x org-modern-mode= v normálním org bufferu je OK. -Pokud export stále selhává, zkus =M-x org-modern-mode= (toggle off) -a exportuj znovu — pokud pak funguje, nahlás to. +** org-modern nefunguje +Spust =doom sync= + restartuj Emacs. Pokud stale ne: =M-x org-modern-mode= +nebo zavre a otevri soubor znovu. -** org-fragtog nefunguje (LaTeX preview) -Vyžaduje imagemagick: =brew install imagemagick= -Ověř: =M-x org-toggle-latex-fragment= — pokud to funguje, org-fragtog -by měl fungovat taky. +** org export selze s Unicode varovanim +Zkontroluj svuj .org soubor na Unicode znaky mimo Latin-1: +#+begin_src sh +python3 -c " +with open('tvuj-soubor.org') as f: + for i, line in enumerate(f, 1): + for ch in line: + if ord(ch) > 255: + print(f'radek {i}: U+{ord(ch):04X} {repr(ch)}') + break +" +#+end_src +Smazani nebo nahrazeni techto znaku vyresi problem. + +** org-super-agenda zobrazuje prazdnou agendu +Spust =M-x org-super-agenda-mode= pro rucni aktivaci. +Zkontroluj ze org soubory maji polozky se SCHEDULED nebo DEADLINE. ** Forge: "Invalid token" -Zkontroluj format =~/.authinfo= — musí být přesně: -=machine git.apps.sukany.cz login daneel^forge password TOKEN= -(bez uvozovek, bez mezer navíc) +Zkontroluj format =~/.authinfo= -- zadne uvozovky, zadne mezery navic: +: machine git.apps.sukany.cz login daneel^forge password TOKEN