254 lines
8.8 KiB
Org Mode
254 lines
8.8 KiB
Org Mode
#+TITLE: Nové featury Doom Emacs -- testovací průvodce
|
|
#+include: ~/org/templates/document_personal.org
|
|
|
|
Tento dokument popisuje všechny nové featury přidané do konfigurace.
|
|
Po každé změně je nutný =doom sync= + restart Emacsu.
|
|
|
|
* Prerekvizity
|
|
|
|
Než testuješ cokoli:
|
|
|
|
#+begin_src sh
|
|
cd ~/.doom.d
|
|
doom sync
|
|
#+end_src
|
|
|
|
Pak restartuj Emacs. Bez toho nové balíčky nejsou dostupné.
|
|
|
|
* 1. link-hint -- otevírání odkazů bez myši
|
|
|
|
Co dělá: zvýrazní všechny viditelné org-format odkazy v bufferu a přiřadí jim
|
|
jednopísmenné zkratky. Stisknutím písmene odkaz otevřeš nebo zkopíruješ URL.
|
|
|
|
Prerekvizita: =doom sync= dokončen, soubor musí obsahovat =[[...]]= odkazy.
|
|
|
|
Jak testovat:
|
|
1. Otevři org soubor který má =[[https://example.com]]= nebo =[[file:inbox.org]]= odkazy
|
|
2. Stiskni =SPC j k= -- link-hint zvýrazní viditelné odkazy
|
|
3. Stiskni písmeno vedle odkazu -- odkaz se otevře
|
|
4. Pro kopírování URL: =SPC j K=
|
|
|
|
*Důležité:* 'No links' je správná hláška když buffer nemá žádný =[[...]]= odkaz
|
|
viditelný na obrazovce. Index.org bez explicitních odkazů = žádné linky. Funguje
|
|
správně -- není to chyba.
|
|
|
|
Příklady odkazů které link-hint najde:
|
|
- =[[https://example.com][Odkaz]]= -- HTTP odkaz
|
|
- =[[file:inbox.org]]= -- soubor
|
|
- =[[*Nadpis]]= -- interní odkaz v dokumentu
|
|
|
|
* 2. Avy -- skok na libovolné místo v bufferu
|
|
|
|
Co dělá: zvýrazní každý výskyt dvou zadaných znaků a skočí na vybrané
|
|
místo bez pohybu myši.
|
|
|
|
Prerekvizita: Doom má avy automaticky -- dostupný 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
|
|
|
|
Ověření: kurzor přeskočí na vybranou pozici bez scrollování.
|
|
|
|
* 3. olivetti-mode -- klidný distraction-free mód
|
|
|
|
Co dělá: horizontálně centruje text na šířku 90 znaků. Zapíná se *ručně* --
|
|
automatické zapínání by rozbilo corfu completion popup.
|
|
|
|
Prerekvizita: =doom sync=, balík =olivetti= nainstalován.
|
|
|
|
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
|
|
|
|
*Upozornění:* Pokud zapneš olivetti a corfu popup zmizí nebo se zobrazí
|
|
mimo obrazovku, vypni olivetti. Olivetti mění vizuální marginy a corfu
|
|
pak počítá špatné souřadnice popupu.
|
|
|
|
* 4. org-modern -- vylepšený vizuál org-mode
|
|
|
|
Co dělá: nahradí hvězdičky u nadpisů Unicode symboly (okrouhlými tvary),
|
|
zvýrazní checkboxy. Aktivuje se automaticky po loadu org-modern balíčku.
|
|
|
|
Prerekvizita: =doom sync=, balík =org-modern= nainstalován.
|
|
|
|
Jak testovat:
|
|
1. Otevři libovolný =.org= soubor (např. inbox.org)
|
|
2. Nadpisy by měly mít jinak vypadající hvězdičky
|
|
3. Checkboxy =[ ]= a =[X]= vypadají jinak
|
|
|
|
Pokud org-modern nefunguje na už otevřený soubor: spusť =M-x org-modern-mode=
|
|
ručně nebo zavři a znovu otevři soubor. Konfigurace zajišťuje aktivaci i pro už
|
|
otevřené buffery při loadu balíčku.
|
|
|
|
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. =org-modern-table= je vypnuto -- tabulkové overlaye by mohly interferovat
|
|
|
|
* 5. org-fragtog -- automatický náhled LaTeX fragmentů
|
|
|
|
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.
|
|
|
|
Prerekvizita: =doom sync=, =org-fragtog= nainstalován, funkční =dvipng=
|
|
nebo =imagemagick=: =brew install imagemagick=.
|
|
|
|
Jak testovat:
|
|
1. Otevři org soubor
|
|
2. Napiš =$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
|
|
|
|
Pokud dvipng není dostupný, org-fragtog selže tiše. Zkontroluj:
|
|
=M-x org-toggle-latex-fragment=
|
|
|
|
* 6. org-super-agenda -- skupiny v agenda view
|
|
|
|
Co dělá: rozdělí org agenda view do skupin: Dnes, Čekám, Kyndryl, ZTJ, Ostatní.
|
|
|
|
Prerekvizita: =doom sync=, =org-super-agenda= nainstalován.
|
|
|
|
Skupiny:
|
|
- *Dnes*: položky se SCHEDULED nebo DEADLINE dnes
|
|
- *Čekám*: položky s TODO stavem WAIT
|
|
- *Kyndryl*: tag =:kyndryl:= nebo =:work:=
|
|
- *ZTJ*: tag =:ztj:=
|
|
- *Ostatní*: všechno co nezapadne do předchozích skupin
|
|
|
|
Jak testovat:
|
|
1. Otevři org agendu: =SPC o A= nebo =C-c a a=
|
|
2. Agenda by měla zobrazovat skupiny s názvy
|
|
3. Položky s TODO =WAIT= ve skupině "Čekám"
|
|
|
|
*Pokud agenda zobrazuje prázdnou stránku:* Spusť =M-x org-super-agenda-mode=
|
|
pro aktivaci, nebo zkontroluj že =doom sync= byl dokončen.
|
|
|
|
* 7. org-noter -- anotace PDF v org-mode
|
|
|
|
Co dělá: propojuje PDF soubor s org souborem poznámek. Stránkování je synchronizováno.
|
|
|
|
Prerekvizita: =doom sync=, =org-noter= nainstalován, PDF otevírá 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. Posouvej PDF -- org soubor se synchronizuje s aktuální stránkou
|
|
4. Přidej poznámku: =SPC o N= -- vloží org heading s pozicí v PDF
|
|
|
|
Ověření: org heading obsahuje =:NOTER_PAGE:= property.
|
|
|
|
* 8. GPTel -- rewrite regionu a org heading
|
|
|
|
Co dělá:
|
|
- =SPC o g r= -- pošle označený region do GPTel 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
|
|
|
|
Prerekvizita: gptel funguje (=SPC o g g= otevírá chat).
|
|
|
|
Jak testovat (rewrite):
|
|
1. Otevři soubor s textem
|
|
2. Označ region (visual mode: =v=)
|
|
3. =SPC o g r= -- počkat -- region se nahradí vylepšením
|
|
4. Zpráva: =GPTel: text vylepšen= v minibufferu
|
|
|
|
Jak testovat (org heading):
|
|
1. Otevři org soubor
|
|
2. Postav kurzor do headingu
|
|
3. =SPC o g p= -- obsah headingu odeslán do GPTel chatu
|
|
|
|
* 9. git-link -- kopírování URL na Gitea
|
|
|
|
Co dělá: zkopíruje URL aktuálního souboru/řádku na Gitea do clipboardu.
|
|
|
|
Prerekvizita: =doom sync=, soubor musí být 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. =SPC g y= -- URL zkopírována do clipboardu
|
|
4. Zkontroluj: =pbpaste= v terminálu
|
|
|
|
Ověření: URL odpovídá aktuálnímu souboru a řádku na git.apps.sukany.cz.
|
|
|
|
* 10. Forge -- Gitea integrace v Magit
|
|
|
|
Co dělá: přidává pull request a issue management do Magit.
|
|
|
|
Prerekvizita: =doom sync=, API token v =~/.authinfo=.
|
|
|
|
Nastavení tokenu:
|
|
1. Přihlásit se na =https://git.apps.sukany.cz=
|
|
2. Settings -> Applications -> Generate new token (scope: =repo=)
|
|
3. Přidat do =~/.authinfo=:
|
|
: machine git.apps.sukany.cz login daneel^forge password <TOKEN>
|
|
4. =chmod 600 ~/.authinfo=
|
|
|
|
Jak testovat:
|
|
1. Otevři Magit: =SPC g g=
|
|
2. Stiskni =@= -- Forge menu
|
|
3. =@ f= -- fetch forge data (PRy, issues)
|
|
|
|
*Poznámka:* Bez tokenu Forge selže s chybou autentizace (očekávané chování).
|
|
|
|
* Přehled kláves
|
|
|
|
| Klávesa | Funkce |
|
|
|-----------+-------------------------------|
|
|
| SPC j k | link-hint -- otevři odkaz |
|
|
| SPC j K | link-hint -- kopíruj 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 -> kontext |
|
|
| SPC g y | git-link (kopíruj URL) |
|
|
| SPC g Y | git-link-commit |
|
|
|
|
* Řešení problémů
|
|
|
|
** link-hint říká 'No links'
|
|
Normální chování když buffer nemá žádný =[[...]]= odkaz viditelný na obrazovce.
|
|
Testuj na org souboru který obsahuje =[[https://...]]= nebo =[[file:...]]= linky.
|
|
|
|
** corfu nefunguje po olivetti
|
|
Vypni olivetti (=SPC t o=). Olivetti mění vizuální marginy, corfu popup pak
|
|
má špatné souřadnice.
|
|
|
|
** org-modern nefunguje
|
|
Spusť =doom sync= + restartuj Emacs. Pokud stále ne: =M-x org-modern-mode=
|
|
nebo zavři a otevři soubor znovu.
|
|
|
|
** org export selže s Unicode varováním
|
|
Zkontroluj svůj .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
|
|
Smazání nebo nahrazení těchto znaků vyřeší problém.
|
|
|
|
** org-super-agenda zobrazuje prázdnou agendu
|
|
Spusť =M-x org-super-agenda-mode= pro ruční aktivaci.
|
|
Zkontroluj že org soubory mají položky se SCHEDULED nebo DEADLINE.
|
|
|
|
** Forge: 'Invalid token'
|
|
Zkontroluj formát =~/.authinfo= -- žádné uvozovky, žádné mezery navíc:
|
|
: machine git.apps.sukany.cz login daneel^forge password TOKEN
|
|
* emacs-new-features
|
|
:PROPERTIES:
|
|
:NOTER_DOCUMENT: ../../exports/pdf/emacs-new-features.pdf
|
|
:END:
|